[CENTOS] [2020 WEBdev] Tutorial zum Hosten von Wordpress mit SSL für 1 Yen, während Sie den Mechanismus verstehen [Teil 1]

Der zweite Teil wird gerade geschrieben. Der erste Teil ist nicht SSL, aber es ist ein Tutorial, um Wordpress kostenlos zu hosten

Ich wollte es kurz beenden, aber meine Karriere wurde länger (Chaban)

Ich habe gerade mit der WEB-Entwicklung begonnen. Wenn die erste WEB-Seite fertig ist, ziehen Sie index.html per Drag & Drop in den Browser und lassen Sie Ihre Freunde die URL teilen und sehen ... IMG_0086.png

** Was? σ (・ ω ・ ,, `)? ** ** **


** ~ 3 Tage später ~ ** "Nun, muss ich eine Domain mit einem Server signieren, um sie öffentlich verfügbar zu machen?"

** ~ 1 Woche später ~ ** "Ich konnte meine erste Website hosten!"

** ~ 1 Monat später ~ ** "Es ist in Ordnung, viele Websites zu erstellen und die Hauptseite wie eine zusammenfassende Website aussehen zu lassen, aber es ist schwierig, den HTML-Code jedes Mal zu bearbeiten, wenn er aktualisiert wird." "Ich denke, Sie sollten Wordpress verwenden."

** ~ 2 Monate später ~ ** "Wordpress ist unglaublich!" "Lass uns anfangen zu bloggen. Jetzt kannst du dich den Reihen der Partner anschließen!"

** ~ 3 Monate später ~ ** "Es ist schwieriger als ich es mir vorgestellt habe, einen Blog zu schreiben." (Beendet mit einem dreitägigen rasierten Kopf) "Vielleicht ist Codierung für mich besser als das Schreiben von Inhalten." Erstellen Sie Ihr eigenes WP-Thema, mit dem Sie Ihre vorherigen Arbeiten verwalten können. Jeden Tag mache und poste ich nur Werke, denen dort nicht geholfen werden kann.

** ~ 4 Monate später ~ ** "Irgendwie habe ich insgesamt ungefähr 10.000 Yen für den Server und die Domain bezahlt. Ich habe keinen Gewinn, aber ..." "Du kannst nicht so bleiben" Anstatt mit Ihren eigenen Interessen und Freuden zu codieren, sollten Sie darüber nachdenken, wie Sie aus Sicht des Benutzers etwas Wertvolles machen können.

** ~ 5 Monate später ~ ** Obwohl es eine leichte mentale Veränderung gab, wurde der Wunsch gewonnen, die aktuelle Site vorerst kostenlos betreiben zu können. "Hass. AWS, GCP. Nein, auch wenn es PaaS heißt."

** ~ 6 Monate später ~ ** "Okay, Apache-Einstellungen und SSL waren schwierig, aber ich habe es geschafft, auf eine völlig freie Route zu wechseln!"

** ~ 7 Monate später ~ ** Einige Tage nach der Scheinprüfung schreibt er die gefeierte Qiita.


Grob gesagt ist das jetzt so. (Sehr schlampig) Übrigens habe ich in dieser Zeit viele Umwege gemacht, wie maschinelles Lernen und Schaben mit Schienen, Laravel oder Python.

Kommen wir zum Schluss zum Hauptthema.

Wie Sie in den Teeblättern oben sehen können, hatte ich in der Vergangenheit den starken Wunsch, die Website, die ich zum ersten Mal geschrieben habe, für die Öffentlichkeit zu öffnen. Deshalb habe ich einen Webserver gemietet und die Website für die Öffentlichkeit geöffnet. Ich denke jedoch, dass es viele Anfänger gibt, die hauptsächlich aus Geld- oder Zeitgründen aufgeben.

Die Spezifikationen interessieren mich nicht so sehr, daher denke ich, dass es ziemlich viele Leute gibt, die an der WEB-Entwicklung beteiligt sind und einen Platz im WEB wünschen, der zwischen mir und mehreren anderen geteilt werden kann.

Für solche Bedürfnisse kann sogar der billigste Mietserverplan über den Spezifikationen liegen, und es wird schmerzhaft sein, wenn die Servergebühr gegessen wird, obwohl es keinen Gewinn gibt.

Ich selbst bin noch ein Anfänger in der Infrastruktur, aber nach Versuch und Irrtum habe ich eine "fast kostenlose" Methode entwickelt, daher möchte ich diese Gelegenheit nutzen, um sie zu teilen.

IMG_0087.png

Gesamtbild

Zunächst werde ich den Gesamtfluss erläutern. Verwenden Sie zunächst Google Cloud Platform, um mindestens den Startbildschirm von Wordpress im ersten Teil anzuzeigen. Danach erwerben wir optional eine Originaldomäne und führen im zweiten Teil die Sicherheitsverbesserung und die Einführung praktischer Tools ein.

Dies ist ein Tutorial zum Hosten einer Wordpress-Site, aber im Allgemeinen kann es auch nur als Webserver mit einer PHP-Ausführungsumgebung verwendet werden.

Im Fall von Entwicklern denke ich, dass Worpdress allein nicht ausreichen wird, also werde ich mich damit befassen, eine Subdomain zu erhalten und die Haupt-Wordpress-Site und andere Projekte auf einem Server zu hosten.

Wenn Sie einen WEB-Server für die persönliche Entwicklung haben möchten, können Sie nur den ersten Teil verwenden. Wenn es sich um eine Site handelt, die sich in Zukunft entwickeln wird, können Sie den zweiten Teil ausführen und die Infrastruktur später entsprechend skalieren. Werden.

Es gibt nur eine Gebühr für den Erwerb der Domain im zweiten Teil, aber da sie etwa 1 bis 1.500 Yen pro Jahr beträgt, ist sie weitaus billiger als die Anmietung eines WEB-Servers und die normale Ausführung.

Mindestvoraussetzung Kenntnisse

Wenn Sie zu diesem Artikel gekommen sind, geht es Ihnen wahrscheinlich gut, aber ich werde Folgendes nicht erklären. Wenn Sie also Fragen haben, lesen Sie diese bitte durch. ..

--Was ist Wordpress? --Was ist ein Domain- / WEB-Server?

Selbst wenn Sie PaaS wie AWS und GCP noch nie berührt haben, können Sie verstehen, wie es ist, wenn Sie die Umgebung vorerst gemäß dem Artikel erstellen. Ich beabsichtige, fehlende Erklärungen und schwierige Begriffe zu beseitigen, aber wenn Sie etwas nicht verstehen, können Sie den Befehl einfach kopieren und einfügen. Ich denke, es ist besser, so etwas vorerst auszuprobieren und es später mit weniger Stress zu verstehen.

Bitte beachten Sie, dass die Erklärung für fortgeschrittene Benutzer verwirrend sein kann.

Vor- / Nachteile dieser Umgebung (Sicht des Entwicklers)

Es ist ein Vorteil und ein Nachteil dieser Umgebung, den Sie im Vergleich zur Verwendung eines normalen Mietservers empfinden.

verdienen Fehler
Sehr billig mit den niedrigsten Spezifikationen Langsame Reaktion (anfällig für plötzlichen Zugriff)
Kann frei eingestellt werden Es gibt viele schwierige Elemente für Anfänger
Sie können das Gefühl genießen "Ich benutze moderne Technologie und ich bin cool" Zu vielseitig und verwirrungsanfällig
Studieren Es kann einige Zeit dauern, bis Sie stecken bleiben, wenn es das erste Mal ist

Solange Sie dies kostenlos tun können, handelt es sich um eine Umgebung mit geringen Spezifikationen. Wenn Sie es jedoch aufladen, können Sie flexibler skalieren als ein Mietserver. Selbst wenn es sich in Zukunft um ein großes Projekt handelt, können Sie es als erste Phase verwenden. Ist überhaupt kein Problem.

Es ist eigentlich einfacher

Ich werde es in der ersten Hälfte tun, aber beim Erstellen einer Instanz mit der Compute Engine von GCP ist es praktisch, ein Image, das bereits für Server, Wordpress, SSL eingerichtet wurde. Sie können auch marketplace / details / bitnami-launchpad / wordpresspro verwenden?

Ich habe diese Dinge einmal verwendet, und obwohl sie optimiert sind, verwende ich sie seitdem aufgrund des komplizierten Verzeichnislayouts und der Angst, sie zu verwenden, ohne zu wissen, wie sie funktionieren. nicht. (Es ist ein Schmerz, das Dokument zu lesen (Beat))

Außerdem denke ich, dass es mehr lernen wird, diese Umgebungen von Grund auf neu zu erstellen.

Ablauf des ersten Teils

--Erstellen Sie eine neue VM-Instanz mit GCP (CentOS7). --Fixieren Sie die IP-Adresse --SSH-Verbindung vom lokalen Computer --Stellen Sie die Firewall ein

Bis hierher

Das Problem bleibt bestehen.

Ablauf des zweiten Teils

Bis zu diesem Punkt ist die Wordpress-Umgebung ausreichend, wenn sie von einer Person (oder mehreren Personen) angezeigt / verwaltet wird. Der gleichzeitige Zugriff kann von 10 Personen oder weniger toleriert werden, weniger als 10.000 VP pro Monat, aber die Antwort ist im Prinzip langsamer als bei einem allgemeinen Mietserver. Wenn der Zugriff jedoch zunimmt, aktualisieren Sie die Compute Engine. (Aktualisieren Sie den Cloud-Speicher, wenn Assets wie Bilder und Videos zunehmen.) Es wird eine skalierbare Umgebung sein.

Ich möchte sagen, dass diese Arbeit in ungefähr Stunden erledigt werden kann, aber ich denke, dass sie für Anfänger wie mich in der ersten Hälfte der Farce und diejenigen, die Linux bis zu einem gewissen Grad berührt haben, völlig anders ist, daher ist die Aussage klar. Ich möchte es vermeiden. Selbst wenn Sie ein absoluter Anfänger sind, ist es in Ordnung, wenn Sie zuerst versuchen, es nachzuahmen, und ich hoffe, es gibt Ihnen die Möglichkeit, von hier aus mit dem Studium der Infrastruktur zu beginnen.

Gehen wir zu Wordpresss "Hallo Welt!"

SCHRITT 0 Erstellen Sie ein Google-Konto (optional)

Google-Konto erstellen Natürlich können Sie die vorhandene verwenden. step0-1.png

Übrigens habe ich für diesen Artikel einen neuen erstellt. (Lassen Sie uns die zweistufige Authentifizierung einrichten !!!)

SCHRITT 1 Registrieren wir uns für GCP

Gehen Sie zu Google Cloud Platform (GCP), um Ihre kostenlose Testversion zu aktivieren step1-1.png

Für die Registrierung sind Informationen wie Ihre Adresse und Ihre Kreditkarte erforderlich. Sie müssen sich jedoch keine Sorgen machen, dass Sie ohne Ihr Wissen belastet werden, und Sie können sicher sein, dass Sie eine Nachfrist von 300 US-Dollar haben.

Wie AWS und Azure heißt GCP PaaS. Mit diesem Dienst können Sie verschiedene Maschinentypen in der Cloud mieten und wirklich verschiedene Dinge tun (). Unter diesen werden wir eine virtuelle Maschine namens Google Compute Engine (GCE) verwenden, die über eine Allzweck-Computerfunktion verfügt, und sie in einen WEB-Server verwandeln.

Ich möchte Sie bitten, mehr über jeden einzelnen herauszufinden, aber wenn Sie ein völlig ignoranter Anfänger sind und PaaS "verstehen", sind Sie ein Genie. Probieren Sie es vorerst aus, ohne die Bedeutung zu kennen, und wenn Sie dies tun, werden Sie es verstehen können, also ist es in Ordnung, weiterzumachen. (Die Lektion tut mir leid.)

Benennen Sie dann das Projekt um.

Der Standardwert ist "Mein erstes Projekt". Ändern Sie ihn daher in einen präzisen und beschreibenden Namen aus ** Navigationsmenü> IAM & Administration> Einstellungen ** oben links. step1-2.png

SCHRITT 2 Erstellen Sie eine GCE-Instanz

Gehen Sie mit ** Navigationsmenü> Compute Engine ** zum Instanziierungsbildschirm. step2-1.png Starten Sie die Instanz-Grundeinstellung von "Erstellen"

step2-2.png Bitte klicken Sie wie folgt

Artikel Bemerkungen
Name Machen Sie es zu etwas, an das Sie sich erinnern können, da Sie es später häufig verwenden werden.
Region [us-west/central/east]Irgendein vonJedoch wir-Ohne east4 ※us-west1 ist Japan geografisch am nächsten
Zone Passend

Maschinenkonfiguration

Artikel Wert
Serie N1
Maschinentyp f1-micro

Gehen Sie nach unten und von "Ändern" auf der Startdiskette step2-3.png

Artikel Wert
OS CentOS
Ausführung CentOS7
Bootdatenträgertyp Standard Persistent Disk (HDD)
Größe 30 (GB)

Dies ist eine Instanz mit den maximalen Spezifikationen, die im Always Free-Frame festgelegt werden können.

Der geschätzte Betrag auf der rechten Seite lautet "5,08 USD / Monat", aber keine Sorge.

Wenn Sie sehen, dass die Instanz (virtuelle Maschine) so ausgeführt wird, ist sie erfolgreich. step2-4.png

Diese externe IP-Adresse (die Adresse für den Zugriff von außen auf die Instanz) ändert sich jedoch bei jedem Neustart. Der nächste Schritt besteht darin, sie zu beheben.

SCHRITT 3 Wechseln wir von einer dynamischen (kurzlebigen) IP zu einer statischen IP

** Navigationsmenü> VPC-Netzwerk> Externe IP-Adresse ** Ändern Sie die externe IP der gerade erstellten Instanz von "kurzlebig" in "statisch".

step3-1.png

step3-2.png Der Name ist angemessen.

Durch einen Neustart der Instanz wird die IP-Adresse nicht geändert.

SCHRITT 4 Lassen Sie uns eine SSH-Verbindung vom lokalen Computer herstellen

Stellen Sie hier eine Verbindung zum VM-Computer in der Cloud her, die Sie mit dem Terminal des Computers erstellt haben, den Sie gerade betreiben.

Eigentlich können Sie den Konsolenbildschirm mit einem Browser öffnen und dort bedienen, aber er kann lange verwendet werden, so dass es bequem ist, eine Verbindung vom lokalen Terminal aus herzustellen.

Es wird angenommen, dass der lokale Computer ein Mac ist. Ich denke, dass die SSH-Verbindung, die ich von nun an herstellen werde, mit demselben Befehl unter Windows hergestellt werden kann. Wenn Sie dies jedoch nicht tun können, überprüfen Sie dies bitte unter "GCE SSH-Verbindungsfenster".

Öffnen Sie nun ein lokales Terminal und generieren Sie mit dem folgenden Befehl den für die SSH-Verbindung erforderlichen Schlüssel.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_gce -C '[Instanzname]'

Wenn Sie es eingeben, werden Sie aufgefordert, eine Passphrase festzulegen, die optional ist. (Die Passphrase wird nicht durch zweimaliges Drücken der Eingabetaste mit einem Leerzeichen festgelegt.)

Registrieren Sie anschließend den generierten öffentlichen Schlüssel in GCE.

cat ~/.ssh/id_rsa_gce.pub

Kopieren Sie die lange Zeichenfolge, die von angezeigt wird (bis zu "ssh-rsa xxxx ~ == [Instanzname]").

Klicken Sie dann in Ihrem Browser auf den Namen der GCE-Instanz, um den Detailbildschirm zu öffnen, und klicken Sie auf Bearbeiten.

step4-1.png

Fügen Sie unten den öffentlichen Schlüssel ein, den Sie zuvor in dem Teil "Es gibt 0 SSH-Authentifizierungsschlüssel" gespeichert haben, und speichern Sie ihn so, wie er ist. step4-2.png

Nachdem Sie fertig sind, geben Sie den folgenden Befehl lokal ein

ssh -i ~/.ssh/id_rsa_gce [Instanzname]@[Externe IP früher behoben]
Last login: Fri Oct 23 14:10:59 2020 from xxxxx
[main@main ~]$

Wenn die Anzeige so aussieht, ist die Verbindung erfolgreich.

sudo systemctl disable firewalld

Derzeit wird Port 22 standardmäßig für die SSH-Verbindung verwendet, ist jedoch anfällig für Angriffe, da dies die Standardeinstellung ist. Möglicherweise sehen Sie bereits zweifelhafte Protokolle um / var / log / Secure. Daher werden wir zunächst diesen Port 22 schließen und eine SSH-Verbindung mit anderen Ports herstellen. Zunächst wird die Firewall über das GCP-Panel bedient. Deaktivieren Sie sie daher hier. Deaktivieren Sie dann SElinux. Dies erfolgt durch direktes Umschreiben der Konfigurationsdatei, anstatt einen Befehl einzugeben.

Minimale vim

Für diejenigen, die neu in Vim sind, hier eine kurze Erklärung. vim ist ein Texteditor-Tool auf dem Terminal, und obwohl es sehr ausgefeilt ist, scheint es für Anfänger schwierig zu sein, damit zu beginnen. Wenn Sie jedoch die folgenden Schritte ausführen, ist dies vorerst in Ordnung.

  1. Starten Sie den Editor mit vim [Dateiname]

Siehe: Praktische Grundierung für Vim-Anfänger

Öffnen Sie nun die Einstellungsdatei.

sudo vim /etc/selinux/config

step5-1.png Hier denke ich, dass "SELINUX = Durchsetzen" gesetzt ist, also schreibe es in "deaktiviert" um.

Starten Sie die Instanz auf dem GCE-Steuerungsbildschirm neu, damit die Einstellungen wirksam werden. step5-2.png

Wenn Sie sich im lokalen Terminal befinden, wird die Verbindung automatisch getrennt. Stellen Sie daher nach dem Neustart erneut eine SSH-Verbindung her.

ssh -i ~/.ssh/id_rsa_gce [Instanzname]@[Externe IP]

Und

getenforce

Es ist in Ordnung, wenn das Ergebnis von "Deaktiviert" ist.

Jetzt setzen wir den Port. Bitte legen Sie die Portnummer willkürlich im Bereich von ** 1024 bis 49151 ** fest Ich werde es auf 45678 setzen. Wenn Sie diese Nummer in Zukunft haben, ersetzen Sie sie bitte durch Ihre eigene.

sudo vim /etc/ssh/sshd_config

Kommentieren Sie dann ("#") aus, wo es sich um "# Port 22" handelt, und ersetzen Sie es durch die von Ihnen festgelegte Portnummer. step5-3.png

Nach dem Speichern

sudo systemctl restart sshd && sudo systemctl restart sshd

Starten Sie sshd mit neu und überprüfen Sie den Status.

● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running)seit Kim 2020-10-23 15:12:15 UTC; 11s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1204 (sshd)
   CGroup: /system.slice/sshd.service
           ├─1184 sshd: [accepted]
           └─1204 /usr/sbin/sshd -D

23. Oktober 15:12:15 main systemd[1]: Stopped OpenSSH server daemon.
23. Oktober 15:12:15 main systemd[1]: Starting OpenSSH server daemon...
23. Oktober 15:12:15 main sshd[1204]: Server listening on 0.0.0.0 port 45678. <=Dies ist die von Ihnen festgelegte Nummer
23. Oktober 15:12:15 main sshd[1204]: Server listening on :: port 45678.
23. Oktober 15:12:15 main systemd[1]: Started OpenSSH server daemon.

Gehen Sie dann zum GCP-Bildschirm, gehen Sie zu ** Navigationsmenü> VPC-Netzwerk> Firewall ** und klicken Sie auf default-allow-ssh, um die Regel zu ändern. step5-4.png

Gehen Sie von "Bearbeiten" oben rechts nach unten, ändern Sie den TCP-Port auf die von Ihnen festgelegte Nummer und speichern Sie. step5-5.png

Jetzt können Sie eine Verbindung vom neuen Port aus herstellen, aber es gibt immer noch eine Regel, nach der der Zugriff von Port 22 aus verweigert werden kann.

Firefall-Einstellungen Stellen Sie unter "Firewall-Regel erstellen" oben auf dem Bildschirm Folgendes ein. (Der rote Rahmen ist der geänderte Teil) step5-6.png

step5-7.png

Beachten Sie, dass diese beiden Regeln standardmäßig angewendet werden. Wenn Sie also in Zukunft die Anzahl der GCE-Instanzen im selben Projekt erhöhen, können Sie auf Port 22 keine SSH-Verbindung herstellen. Denken Sie also irgendwo daran. Leg es bitte hin.

Gehen Sie nun zum Terminal und trennen Sie die Verbindung einmal mit "exit", wenn Sie noch mit der Instanz verbunden sind.

Hier wie zuvor

ssh -i ~/.ssh/id_rsa_gce [Instanzname]@[Externe IP]

Auch wenn Sie bestätigen können, dass Sie keine Verbindung herstellen können. Also am Ende dieses Schritts,

ssh -i -p [Port-Nummer] ~/.ssh/id_rsa_gce [Instanzname]@[Externe IP]

Wenn Sie als verbinden können, ist es erfolgreich. Es war ein bisschen lang, aber jetzt ist es eine sicherere Umgebung.

SCHRITT 6 Lassen Sie uns Apache installieren

Diese virtuelle Maschine wird schließlich ein WEB-Server. Es gibt zwei große Türme in der WEB-Serversoftware, Apache und Nginx, aber dieses Mal möchte ich mit Apache gehen.

Ab hier gibt es viele Befehle, für die zur Laufzeit Superuser-Berechtigungen erforderlich sind. Legen Sie sich also nicht jedes Mal als "sudo ~~" fest, sondern als Root-Benutzer.

sudo su -

Ändern Sie die Zeitzone des Computers, da es einfacher zu verstehen ist, ob Datum und Uhrzeit des Zugriffsprotokolls in Japan liegen.

timedatectl set-timezone Asia/Tokyo

Es ist in Ordnung, wenn das Ergebnis des Befehls "Datum" die aktuelle japanische Zeit ist.

Apache-Installation

yum install -y httpd

Start & Ausdauer

systemctl start httpd && systemctl enable httpd

Stellen Sie hier die Firewall erneut ein. Ich habe die Regeln von SSH früher geändert, aber diesmal ist dies die Einstellung für verschiedene Kommunikationsprotokolle "http" und "https". Es ist eine vertraute.

Der Zugriff über diese beiden Protokolle ist standardmäßig nicht zulässig. Wenn Sie also über einen Browser darauf zugreifen, wird er blockiert und nicht angezeigt.

Lassen wir diese also zu. Es ist jedoch einfach.

Wählen Sie eine Instanz aus dem Compute Engine-Instanzverwaltungsbildschirm aus und gehen Sie oben rechts zu "Bearbeiten". step6-1.png

Überprüfen Sie einfach diese beiden Elemente in der Mitte.

Eigentlich ist dies ein Element, das beim Erstellen einer Instanz gleichzeitig festgelegt werden kann, aber ich denke, es ist besser, dies zu diesem Zeitpunkt zu tun, als es zuerst zu überprüfen, ohne die Bedeutung zu kennen. ~~ Ich habe normalerweise vor dem Gebäude vergessen, dass es mir leid tut ~~

Nun in der Suchleiste des Browsers http: // [IP-Adresse der Instanz] Eingeben! Wenn dieser Bildschirm angezeigt wird, sind Sie erfolgreich. step6-2.png

Zu diesem Zeitpunkt kann dieser Computer jetzt Dateien im öffentlichen Verzeichnis (/ var / www / html) als WEB-Server streamen.

Die Software namens Wordpress, die der Zweck dieser Zeit ist, hat hauptsächlich die Funktionen "(1) der Administrator schreibt einen Artikel" und "(2) generiert HTML zur Anzeige als Website" unter Verwendung der Daten.

(Ein System, das Inhalte wie Artikel in eine Vorlage einbettet und auf diese Weise verteilt, wird als CMS bezeichnet.)

In (1) wird eine Datenbank als Datenspeicherziel benötigt. Wir verwenden eine Programmiersprache namens PHP, um die erforderlichen Daten aus der Datenbank zu extrahieren und so etwas wie (2) zu tun.

Als nächstes werden wir die PHP-Ausführungsumgebung und MariaDB (Datenbank) installieren.

SCHRITT 7 Lassen Sie uns PHP installieren

Ich habe bei der Installation von Apache den Befehl yum verwendet. Dies ist ein Tool zum Verwalten von Softwarepaketen in CentOS. Wenn Sie "yum install httpd" eingeben, wird "repository" angezeigt, das in einem Warehouse in der Cloud mit vielen Paketen nach "httpd" sucht und es zusammen mit den anderen Paketen installiert, die zum Ausführen erforderlich sind. ..

Ich werde von nun an PHP7.3 installieren, aber ich kann es nicht so installieren, wie es ist, weil es nicht in den Standard-Repositorys ist.

Fügen Sie also zuerst das Repository hinzu, in dem sich PHP 7.3 befindet.

yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Nachdem Sie nun PHP 7.3 installieren können, installieren Sie alles auf einmal, einschließlich der erforderlichen Bibliotheken.

yum install -y php php-mysql php-mbstring php-gd --enablerepo=remi-php73

Sie können wie folgt überprüfen, ob PHP 7.3 enthalten ist.

[root@main ~]# php --version
PHP 7.3.23 (cli) (built: Sep 29 2020 08:33:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies

Hier

vim /var/www/html/info.php

Starten Sie den Editor mit

<?php
  phpinfo();
?>

Bitte schreiben und speichern.

Dann http: // [IP-Adresse] / info.php Versuchen Sie zuzugreifen.

Der soeben eingegebene Inhalt wird wie im Text angezeigt. Dies liegt daran, dass ich PHP installiert habe, Apache es jedoch noch nicht geladen hat. Daher habe ich nur "info.php" als Textdatei geliefert.

systemctl restart httpd

Wenn Sie Apache mit neu starten, funktioniert es mit PHP.

Bitte laden Sie den Browser-Bildschirm neu. step7-1.png Wenn Sie einen solchen Bildschirm sehen, sind Sie erfolgreich. Nach Erhalt der http-Anfrage befahl Apache, "info.php" auszuführen, und schickte das Ergebnis an den Client zurück.

Auf dem Terminal

php /var/www/html/info.php

Bitte versuche. Ich denke, dass der gleiche Inhalt wie der Browser ausgegeben wurde.

Lassen Sie uns PHP einrichten

Hier sind einige Einstellungen, die Sie vornehmen sollten, bevor Sie Wordpress verwenden.

Zunächst lautet die PHP-Konfigurationsdatei "/ etc / php.ini". Erstellen Sie jedoch ein Backup, bevor Sie Änderungen daran vornehmen.

cp /etc/php.ini /etc/php.ini.bk

Wenn PHP aufgrund eines Fehlers hängen bleibt, löschen Sie "php.ini" und benennen Sie "php.ini.bk" in "php.ini" um. Alles wird wiederhergestellt.

vim /etc/php.ini

Wenn Sie dann / timezone eingeben und die Eingabetaste drücken, wechselt es zum Zeitzoneneinstellungsteil. Rufen Sie also den Bearbeitungsmodus mit i auf, entfernen Sie den Kommentar ("; ") dort undAsia / Tokyo Sagen wir. step7-2.png

Kehren Sie mit "esc" in den Suchmodus zurück, drücken Sie die Eingabetaste mit "/ post_max_size" und ändern Sie den Wert hier auf "128M". step7-3.png

Ändern Sie in ähnlicher Weise upload_max_filesize in 128M. step7-4.png

Die letzten beiden Einstellungen sollen verhindern, dass bei einer umfangreichen Verarbeitung mit Wordpress (Hochladen von Artikeln mit großen Datenmengen, Installieren von Plugins usw.) ein Fehler auftritt.

Weitere Einstellungen wie die Protokollausgabe finden Sie hier. [PHP] Einstellungen, die Sie nach der Installation von PHP vornehmen möchten

Speichern Sie nun die Konfigurationsdatei mit : wq und schließen Sie sie

systemctl restart httpd

Starten Sie Apache neu, um es zu laden. Wenn Sie "info.php" in Ihrem Browser aktualisieren, können Sie sehen, dass der geänderte Teil wiedergegeben und angezeigt wird. step7-5.png

SCHRITT 8 Lassen Sie uns MariaDB installieren

Nachdem wir eine PHP-Umgebung haben, werden wir ein Datenbankverwaltungssystem namens MariaDB installieren.

Verwenden Sie den folgenden Befehl, um sofort zu installieren, beizubehalten und zu starten.

yum install -y mariadb-server \
&& systemctl enable mariadb \
&& systemctl start mariadb

Wenn es um Datenbanken geht, sind einige von Ihnen vielleicht mit MySQL vertraut, aber aus der Sicht des Benutzers ist MariaDB leicht aufwärtskompatibel, aber Anfänger werden den Unterschied nicht oft bemerken.

Referenz Vergleiche MySQL und MariaDB! Lassen Sie uns die Funktionen und Unterschiede jeder Datenbank überprüfen!

mysql_secure_installation

Startet die interaktive Initialisierung. Basic Enter ist in Ordnung, aber Sie werden aufgefordert, unterwegs das Kennwort des Root-Benutzers der Datenbank festzulegen. Geben Sie daher ein sicheres Kennwort ein. (Das Passwort wird auch dann nicht angezeigt, wenn Sie auf die Tastatur drücken. Achten Sie daher auf Tippfehler.)

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Und wenn die Einstellung abgeschlossen ist

mysql -uroot -p

Melden Sie sich als Root-Benutzer der Datenbank mit dem zuvor festgelegten Kennwort an. step8-1.png Erstellen Sie wie folgt eine Datenbank für Wordpress und prüfen Sie, ob sie mit "show database" hinzugefügt wurde.

MariaDB [(none)]> CREATE DATABASE wp;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wp                 |
+--------------------+
4 rows in set (0.00 sec)

Bemerkungen SQL-Anweisungen wie "CREATE" werden in einfachen Großbuchstaben geschrieben, Kleinbuchstaben sind jedoch in Ordnung. Wenn Sie mehrere Wordpress-Sites auf diesem Server haben möchten, ist es später einfacher, einen unterscheidbaren Datenbanknamen zu verwenden.

Der Benutzer, den ich jetzt verwende, heißt Root-Benutzer und kann alles tun. Um andere nicht verwandte Datenbankvorgänge zu verhindern, erstellt Wordpress einen neuen Benutzer dafür und erteilt ihm Betriebsberechtigungen nur für die soeben erstellte wp-Datenbank.

MariaDB [(none)]> CREATE USER '[Neuer Benutzername]'@'localhost' IDENTIFIED BY '[Neues Benutzerpasswort]';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON wp.* TO '[Neuer Benutzername]'@'localhost';
Query OK, 0 rows affected (0.00 sec)

Nachdem Sie einen dedizierten Benutzer erstellt haben, melden Sie sich einmal mit "exit" ab und als dieser Benutzer an.

MariaDB [(none)]> exit;
Bye
[root@main ~]# mysql -u [Nutzername] -p
Enter password:!! !! !! Sie können es nicht sehen, auch wenn Sie es betreten! !! !!
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Hier ist das Ergebnis von `show database ';

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wp                 |
+--------------------+
2 rows in set (0.00 sec)

Auf diese Weise ist es in Ordnung, wenn nur "information_schema" und die zuvor erstellte Datenbank verfügbar sind.

SCHRITT 9 Lassen Sie uns Wordpress installieren

Schließlich wird Wordpress installiert. Wenn ich versuche, von der offiziellen Wordpress-Website herunterzuladen, werden die Daten selbstverständlich auf den lokalen Computer heruntergeladen.

Es gibt viele Möglichkeiten, dies auf eine GCE-Instanz zu setzen, aber lassen Sie uns hier wget verwenden.

wget ist ein Befehl zum Herunterladen von Inhalten aus dem Internet und nicht im aktuellen CentOS enthalten. Installieren Sie ihn daher zuerst.

yum install -y wget

Gehen Sie zum Stammverzeichnis des öffentlichen Verzeichnisses

cd /var/www/html

Laden Sie das neueste japanische WordPress herunter.

wget https://ja.wordpress.org/latest-ja.tar.gz

Wenn Sie ls versuchen, können Sie sehen, dass es latest-ja.tar.gz gibt.

Extrahieren Sie diese Datei dann mit dem Befehl tar.

tar xvfz latest-ja.tar.gz

Wenn Sie an dieser Stelle ls versuchen, erhalten Sie dieses Ergebnis.

[root@main html]# ls
info.php  latest-ja.tar.gz  wordpress

Hier brauchen wir nichts anderes als "WordPress", also lassen Sie es uns löschen.

rm -rf info.php latest-ja.tar.gz

Jetzt haben Sie die Wordpress-Daten auf Ihrem CentOS installiert.

Lassen Sie uns eine Verzeichnisstruktur für die Zukunft erstellen

Als Nächstes werde ich zur Vereinfachung des zweiten Teils dieses Artikels den Speicherort dieser Wordpress-Daten ändern. Da der Inhalt jedoch etwas schwierig sein kann, [können Sie hier aus einem bestimmten Grund überspringen. ](#Ende der Einführung)

Standardmäßig verwendet Apache "/ var / www / html" als Stammverzeichnis seines öffentlichen Verzeichnisses. (Von nun an heißt es "Document Root")

Jetzt http: // [IP-Adresse] / hoge.html Ich greife gerne zu, aber in der zweiten Hälfte bekomme ich die Domain und http://example.com/hoge.html Sie können so darauf zugreifen.

Im Verlauf der persönlichen Entwicklung möchten Sie möglicherweise zusätzlich zur Wordpress-Site ein weiteres Projekt einrichten.

In diesem Fall die Wordpress-Site http://example.com/wordpress/ An die Spitze eines anderen Projekts http://example.com/anotherproject/ Zu

Der Apache-Server betrachtet diese jedoch als denselben Standort, was zu Verwirrung führt, z. B. wenn die Protokolle von zwei Projekten an denselben Speicherort geschrieben werden.

In einem solchen Fall ist es meiner Meinung nach üblich, ** eine Subdomain zu erstellen und diese mit der VituralHost-Funktion von Apache zu verbinden **. Sie müssen es jetzt nicht im Detail verstehen, aber in den DNS-Einstellungen lautet die Haupt-Wordpress-Site "http: // example.com" und ein anderes Projekt Angenommen, Sie möchten es "http: // another.example.com" zuweisen.

Abhängig von den Einstellungen auf der Apache-Seite können dann "example.com" und "another.example.com" verschiedenen Dokumentwurzeln zugewiesen werden.

Das Bild sieht so aus.

Projektname URL Dokument Root
Blog https://example.com /var/www/wordpress
Fun Seite https://tanoshii.example.com /var/www/tanoshii

Dies erleichtert das Vornehmen von Einstellungen, z. B. das Einschränken des Zugriffs auf nur eine Site.

Wenn Sie eine große Site mit viel Zugriff betreiben, wird eine Site auf einem (oder mehreren) Servern gehostet. Da jedoch keine Einzelpersonen erforderlich sind, werden wir weiterhin Subdomains mit demselben Server verbinden. tun können.

Die Einstellung mit VirtualHost erfolgt jedoch nach dem Erwerb der Domäne im zweiten Teil. Verschieben Sie Wordpress aus den oben genannten Gründen wie folgt.

Ende der Einführung
systemctl stop httpd #Ich werde Apache vorerst stoppen
cd /var/www
mv html/wordpress .
chown -R apache:apache wordpress/ #Ändern Sie den Besitzer von root zu apache user
rm -rf html

Ändern Sie dann in den Apache-Einstellungen das Standarddokumentstammverzeichnis von "/ var / www / html" in "/ var / www / wordpress".

cd /etc/httpd/conf
cp httpd.conf httpd.conf.bk # php.Erstellen Sie ein Backup wie ini
vim httpd.conf

Suchen Sie nach / DocumentRoot und ändern Sie es wie folgt. step9-1.png

Nach dem Speichern der Einstellungen

httpd -t

Sie können mit nach Syntaxfehlern suchen. Dies ist nützlich, da das Einrichten von Apache mit Versuch und Irrtum verbunden ist.

Syntax OK und wenn es okay aussieht

systemctl start httpd

Lass uns beginnen mit.

Versuchen Sie, mit Ihrem Browser auf "http: // [IP-Adresse]" zuzugreifen oder diese neu zu laden. Wenn Sie einen Bildschirm wie diesen sehen, sind Sie erfolgreich. step9-2.png

Geben Sie die in SCHRITT 8 festgelegte worpdress-spezifische Datenbank und die Benutzerinformationen ein. step9-3.png

Wenn Sie sich normal registrieren können, wird die Schaltfläche zur Ausführung der Installation angezeigt. Registrieren Sie die Informationen nach dem Drücken als Wordpress-Administrator. step9-4.png

Melden Sie sich nach dem Einstellen mit dem Benutzernamen und dem Kennwort an, die Sie gerade auf dem Anmeldebildschirm festgelegt haben step9-5.png Ich konnte auf den Verwaltungsbildschirm zugreifen!

Wenn Sie auf "http: // [IP-Adresse] /" zugreifen, wird die Hauptseite angezeigt. step9-6.png

Hello World! Danke für deine harte Arbeit.

Zusammenfassung des ersten Teils

--Erstellte eine neue VM-Instanz mit GCP (CentOS7)

Die Kosten betragen bisher 0 Yen. Von hier aus können Sie Wordpress-Themen erstellen und damit herumspielen.

Selbst wenn Sie diesen Server für die persönliche Entwicklung verwenden, bleibt das Problem bestehen.

――Der direkte Zugriff auf die IP-Adresse ist nicht einfach. ――Es ist schwierig, eine andere Site als dieses Wordpress einzurichten ――Ich kann nicht antworten, selbst wenn ich plötzlich auf etwas Summen zugreife

Der zweite Teil wird sich also mit diesem Problem befassen. Die Sicherheit ist jedoch auf das beschränkt, was ich kostenlos tun kann, und meine Fähigkeiten sind begrenzt. Um das Schlimmste zu vermeiden, sollten Sie keine wirklich wichtigen Informationen auf diesen Server stellen.

Über den zweiten Teil In Kürze ...

In Bezug auf den zweiten Teil wird die allgemeine Zusammensetzung wie oben beschrieben festgelegt. Ich denke jedoch, dass selbst wenn ich den zweiten Teil schreibe, ohne die Bewertung dieses ersten Teils zu erhalten, er nur in vielen Artikeln vergraben ist. Wenn ich also Dutzende von LGTM verdiene, werde ich ernsthaft mit der Bearbeitung beginnen. Wenn Sie so weit gelesen haben, würde ich es begrüßen, wenn Sie es möchten und teilen.

Recommended Posts

[2020 WEBdev] Tutorial zum Hosten von Wordpress mit SSL für 1 Yen, während Sie den Mechanismus verstehen [Teil 1]
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 1
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 2
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 0
Warten Sie, bis PostgreSQL mit Docker gestartet ist, und starten Sie dann den WEB-Dienst
Der Weg zum Erstellen eines Webdienstes (Teil 2)
Der Weg zum Erstellen eines Webdienstes (Teil 1)