So installieren Sie WordPress mit LEMP unter Ubuntu 18.04

Einführung

WordPress ist das beliebteste CMS (Content Management System) im Internet. Sie können auf einfache Weise flexible Blogs und Websites über ein MySQL-Backend mit PHP-Verarbeitung einrichten. WordPress hat eine unglaubliche Akzeptanz erfahren und ist eine großartige Wahl, um eine Website schnell zum Laufen zu bringen. Nach dem Setup kann fast die gesamte Administration über das Web-Frontend erfolgen.

In diesem Handbuch konzentrieren wir uns darauf, eine WordPress-Instanz auf einem LEMP-Stack (Linux, Nginx, MySQL und PHP) auf einem Ubuntu 18.04-Server einzurichten.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie Zugriff auf einen Ubuntu 18.04-Server.

Sie müssen die folgenden Aufgaben ausführen, bevor Sie dieses Handbuch starten können:

  • Create a sudo user on your server: Wir werden die Schritte in diesem Handbuch mit einem Nicht-Root-Benutzer mitsudo Berechtigungen ausführen. Sie können einen Benutzer mit den Berechtigungen vonsudoerstellen, indem Sie unserenUbuntu 18.04 initial server setup guide folgen.

  • Install a LEMP stack: WordPress benötigt einen Webserver, eine Datenbank und PHP, um richtig zu funktionieren. Das Einrichten eines LEMP-Stacks (Linux, Nginx, MySQL und PHP) erfüllt alle diese Anforderungen. Befolgen Siethis guide, um diese Software zu installieren und zu konfigurieren.

  • Secure your site with SSL: WordPress stellt dynamische Inhalte bereit und übernimmt die Benutzerauthentifizierung und -autorisierung. TLS/SSL is the technology that allows you to encrypt the traffic from your site so that your connection is secure. Wie Sie SSL einrichten, hängt davon ab, ob Sie einen Domainnamen für Ihre Site haben.

    • If you have a domain name…Der einfachste Weg, Ihre Site zu sichern, ist Let's Encrypt, das kostenlose, vertrauenswürdige Zertifikate bereitstellt. Folgen Sie unserenLet’s Encrypt guide for Nginx, um dies einzurichten.

    • If you do not have a domain… und Sie verwenden diese Konfiguration nur zum Testen oder für den persönlichen Gebrauch. Sie können stattdessen ein selbstsigniertes Zertifikat verwenden. Dies bietet die gleiche Art der Verschlüsselung, jedoch ohne Domänenüberprüfung. Folgen Sie unserenself-signed SSL guide for Nginx, um sich einzurichten.

Wenn Sie mit den Einrichtungsschritten fertig sind, melden Sie sich alssudo-Benutzer bei Ihrem Server an und fahren Sie unten fort.

[[Schritt-1 - Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress]] == Schritt 1 - Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress

Der erste Schritt, den wir unternehmen werden, ist ein vorbereitender. WordPress verwendet MySQL, um Site- und Benutzerinformationen zu verwalten und zu speichern. Wir haben MySQL bereits installiert, müssen jedoch eine Datenbank und einen Benutzer für WordPress erstellen.

Melden Sie sich zunächst beim MySQL-Root-Konto (Administrator) an. Wenn MySQL für die Verwendung des Authentifizierungs-Plugins vonauth_socketkonfiguriert ist (Standardeinstellung), können Sie sich mitsudo beim MySQL-Administratorkonto anmelden:

sudo mysql

Wenn Sie die Authentifizierungsmethode geändert haben, um ein Kennwort für das MySQL-Root-Konto zu verwenden, verwenden Sie stattdessen das folgende Format:

mysql -u root -p

Sie werden aufgefordert, das Kennwort einzugeben, das Sie für das MySQL-Root-Konto festgelegt haben.

Erstens können wir eine separate Datenbank erstellen, die WordPress steuern kann. Sie können dies so nennen, wie Sie möchten, aber wir werdenwordpress in diesem Handbuch verwenden, um es einfach zu halten. Sie können die Datenbank für WordPress erstellen, indem Sie Folgendes eingeben:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

[.note] #Note: Jede MySQL-Anweisung muss mit einem Semikolon (;) enden. Stellen Sie sicher, dass dies vorhanden ist, wenn Probleme auftreten.
#

Als Nächstes erstellen wir ein separates MySQL-Benutzerkonto, das wir ausschließlich für die Bearbeitung unserer neuen Datenbank verwenden werden. Das Erstellen von Datenbanken und Konten mit nur einer Funktion ist aus Verwaltungs- und Sicherheitssicht eine gute Idee. Wir werden den Namenwordpressuser in diesem Handbuch verwenden. Sie können dies jederzeit ändern.

Wir werden dieses Konto erstellen, ein Kennwort festlegen und Zugriff auf die von uns erstellte Datenbank gewähren. Wir können dies tun, indem wir den folgenden Befehl eingeben. Denken Sie daran, hier ein sicheres Passwort für Ihren Datenbankbenutzer zu wählen:

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

Sie haben jetzt eine Datenbank und ein Benutzerkonto, die jeweils speziell für WordPress erstellt wurden. Wir müssen die Berechtigungen löschen, damit die aktuelle Instanz von MySQL über die letzten Änderungen informiert ist, die wir vorgenommen haben:

FLUSH PRIVILEGES;

Beenden Sie MySQL, indem Sie Folgendes eingeben:

EXIT;

Die MySQL-Sitzung wird beendet und Sie kehren zur regulären Linux-Shell zurück.

[[Schritt-2 - Installation zusätzlicher PHP-Erweiterungen]] == Schritt 2 - Installation zusätzlicher PHP-Erweiterungen

Beim Einrichten unseres LEMP-Stacks benötigten wir nur einen minimalen Satz an Erweiterungen, um PHP zur Kommunikation mit MySQL zu bewegen. WordPress und viele seiner Plugins nutzen zusätzliche PHP-Erweiterungen.

Wir können einige der beliebtesten PHP-Erweiterungen für die Verwendung mit WordPress herunterladen und installieren, indem wir Folgendes eingeben:

sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

[.note] #Note: Jedes WordPress-Plugin hat seine eigenen Anforderungen. Für einige müssen möglicherweise zusätzliche PHP-Pakete installiert werden. Überprüfen Sie Ihre Plugin-Dokumentation, um die PHP-Anforderungen zu ermitteln. Wenn sie verfügbar sind, können sie wie oben gezeigt mitapt installiert werden.
#

Wenn Sie mit der Installation der Erweiterungen fertig sind, starten Sie den PHP-FPM-Prozess neu, damit der laufende PHP-Prozessor die neu installierten Funktionen nutzen kann:

sudo systemctl restart php7.2-fpm

Wir haben jetzt alle notwendigen PHP-Erweiterungen auf dem Server installiert.

[[Schritt-3 - Konfigurieren von Nginx]] == Schritt 3 - Konfigurieren von Nginx

Als nächstes werden wir ein paar kleinere Anpassungen an unseren Nginx-Server-Blockdateien vornehmen. Basierend auf den erforderlichen Tutorials sollten Sie eine Konfigurationsdatei für Ihre Site im Verzeichnis/etc/nginx/sites-available/haben, die so konfiguriert ist, dass sie auf den Domänennamen oder die IP-Adresse Ihres Servers reagiert und durch ein TLS / SSL-Zertifikat geschützt ist. Wir werden hier/etc/apache2/sites-available/wordpress als Beispiel verwenden, aber Sie sollten gegebenenfalls den Pfad zu Ihrer Konfigurationsdatei ersetzen.

Zusätzlich verwenden wir/var/www/wordpress als Stammverzeichnis unserer WordPress-Installation. Sie sollten das in Ihrer eigenen Konfiguration angegebene Webstammverzeichnis verwenden.

[.note] #Note: Möglicherweise verwenden Sie die Standardkonfiguration von/etc/nginx/sites-available/default(mit/var/www/html als Webstamm). Dies ist in Ordnung, wenn Sie nur eine Website auf diesem Server hosten möchten. Wenn nicht, teilen Sie die erforderliche Konfiguration am besten in logische Blöcke auf, eine Datei pro Site.
#

Öffnen Sie zunächst die Serverblockdatei Ihrer Site mit den Berechtigungen vonsudo:

sudo nano /etc/nginx/sites-available/wordpress

Innerhalb des Hauptblocksservermüssen einige Blöckelocationhinzugefügt werden.

Erstellen Sie zunächst genau passende Standortblöcke für Anforderungen an/favicon.ico und/robots.txt, für die wir keine Anforderungen protokollieren möchten.

Wir werden einen Speicherort für reguläre Ausdrücke verwenden, um alle Anforderungen für statische Dateien abzugleichen. Wir werden die Protokollierung für diese Anforderungen wieder deaktivieren und sie als hochgradig cachefähig markieren, da dies in der Regel teure Ressourcen sind. Sie können diese statische Dateiliste so anpassen, dass sie andere Dateierweiterungen enthält, die Ihre Site möglicherweise verwendet:

/etc/nginx/sites-available/wordpress

server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Innerhalb des vorhandenenlocation /-Blocks müssen wir dietry_files-Liste so anpassen, dass anstelle der Rückgabe eines 404-Fehlers als Standardoption die Steuerung mit den Anforderungsargumenten an dieindex.php-Datei übergeben wird .

Das sollte ungefähr so ​​aussehen:

/etc/nginx/sites-available/wordpress

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Jetzt können wir unsere Konfiguration auf Syntaxfehler überprüfen, indem wir Folgendes eingeben:

sudo nginx -t

Wenn keine Fehler gemeldet wurden, laden Sie Nginx neu, indem Sie Folgendes eingeben:

sudo systemctl reload nginx

Als nächstes werden wir WordPress selbst herunterladen und einrichten.

[[Schritt-4 -—- Herunterladen von WordPress]] == Schritt 4 - Herunterladen von WordPress

Nachdem unsere Serversoftware konfiguriert wurde, können wir WordPress herunterladen und einrichten. Insbesondere aus Sicherheitsgründen wird immer empfohlen, die neueste Version von WordPress von ihrer Website zu beziehen.

Wechseln Sie in ein beschreibbares Verzeichnis und laden Sie die komprimierte Version herunter, indem Sie Folgendes eingeben:

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz

Extrahieren Sie die komprimierte Datei, um die WordPress-Verzeichnisstruktur zu erstellen:

tar xzvf latest.tar.gz

Wir werden diese Dateien vorübergehend in unser Dokumentenstammverzeichnis verschieben. Zuvor können wir die Beispielkonfigurationsdatei in den Dateinamen kopieren, den WordPress tatsächlich liest:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Jetzt können wir den gesamten Inhalt des Verzeichnisses in unser Dokumentenstammverzeichnis kopieren. Wir verwenden das Flag-a, um sicherzustellen, dass unsere Berechtigungen beibehalten werden. Wir verwenden einen Punkt am Ende unseres Quellverzeichnisses, um anzuzeigen, dass alles im Verzeichnis kopiert werden soll, einschließlich aller versteckten Dateien:

sudo cp -a /tmp/wordpress/. /var/www/wordpress

Nachdem unsere Dateien vorhanden sind, weisen wir sie dem Benutzer und der Gruppe vonwww-datazu. Dies ist der Benutzer und die Gruppe, unter denen Nginx ausgeführt wird. Nginx muss in der Lage sein, WordPress-Dateien zu lesen und zu schreiben, um die Website zu bedienen und automatische Updates durchzuführen.

sudo chown -R www-data:www-data /var/www/wordpress

Unsere Dateien befinden sich jetzt im Dokumentenstamm unseres Servers und haben den richtigen Besitz. Wir müssen jedoch noch einige weitere Konfigurationsschritte durchführen.

[[Schritt-5 -—- Einrichten der WordPress-Konfigurationsdatei]] == Schritt 5 - Einrichten der WordPress-Konfigurationsdatei

Als nächstes müssen wir einige Änderungen an der Haupt-WordPress-Konfigurationsdatei vornehmen.

Wenn wir die Datei öffnen, müssen wir zunächst einige geheime Schlüssel anpassen, um die Sicherheit unserer Installation zu gewährleisten. WordPress bietet einen sicheren Generator für diese Werte, damit Sie nicht versuchen müssen, selbst gute Werte zu finden. Diese werden nur intern verwendet, daher schadet es nicht der Benutzerfreundlichkeit, hier komplexe, sichere Werte zu haben.

Geben Sie Folgendes ein, um sichere Werte aus dem WordPress-Generator für geheime Schlüssel abzurufen:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Sie erhalten eindeutige Werte zurück, die ungefähr so ​​aussehen:

[.warning] #Warning: Es ist wichtig, dass Sie jedes Mal eindeutige Werte anfordern. Kopieren SieNOT die unten gezeigten Werte!
#

Outputdefine('AUTH_KEY',         '1jl/vqfs

Dies sind Konfigurationszeilen, die wir direkt in unsere Konfigurationsdatei einfügen können, um sichere Schlüssel festzulegen. Kopieren Sie die Ausgabe, die Sie jetzt erhalten haben.

Öffnen Sie nun die WordPress-Konfigurationsdatei:

sudo nano /var/www/wordpress/wp-config.php

Suchen Sie den Abschnitt, der die Dummy-Werte für diese Einstellungen enthält. Es wird ungefähr so ​​aussehen:

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

. . .

Löschen Sie diese Zeilen und fügen Sie die Werte ein, die Sie über die Befehlszeile kopiert haben:

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

Als nächstes müssen wir einige der Datenbankverbindungseinstellungen am Anfang der Datei ändern. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Kennwort anpassen, das wir in MySQL konfiguriert haben.

Die andere Änderung, die wir vornehmen müssen, besteht darin, die Methode festzulegen, die WordPress zum Schreiben in das Dateisystem verwenden soll. Da wir dem Webserver die Berechtigung erteilt haben, dort zu schreiben, wo er benötigt wird, können wir die Dateisystemmethode explizit auf "direct" setzen. Wenn dies nicht mit unseren aktuellen Einstellungen festgelegt wird, fordert WordPress bei einigen Aktionen zur Eingabe von FTP-Anmeldeinformationen auf. Diese Einstellung kann unterhalb der Datenbankverbindungseinstellungen oder an einer anderen Stelle in der Datei hinzugefügt werden:

/var/www/wordpress/wp-config.php

. . .

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

[[Schritt 6 - Abschließen der Installation über das Webinterface]] == Schritt 6 - Abschließen der Installation über das Webinterface

Nachdem die Serverkonfiguration abgeschlossen ist, können wir die Installation über die Weboberfläche abschließen.

Navigieren Sie in Ihrem Webbrowser zum Domänennamen oder zur öffentlichen IP-Adresse Ihres Servers:

http://server_domain_or_IP

Wählen Sie die Sprache aus, die Sie verwenden möchten:

WordPress language selection

Als Nächstes gelangen Sie zur Haupteinrichtungsseite.

Wählen Sie einen Namen für Ihre WordPress-Site und einen Benutzernamen (es wird empfohlen, aus Sicherheitsgründen nicht „admin“ zu wählen). Ein sicheres Passwort wird automatisch generiert. Speichern Sie dieses Passwort oder wählen Sie ein alternatives sicheres Passwort.

Geben Sie Ihre E-Mail-Adresse ein und wählen Sie aus, ob Sie Suchmaschinen von der Indizierung Ihrer Website abhalten möchten:

WordPress setup installation

Wenn Sie weiter klicken, werden Sie zu einer Seite weitergeleitet, auf der Sie aufgefordert werden, sich anzumelden:

WordPress login prompt

Sobald Sie sich angemeldet haben, werden Sie zum WordPress-Verwaltungs-Dashboard weitergeleitet:

WordPress login prompt

Fazit

WordPress sollte installiert und einsatzbereit sein! Einige gängige nächste Schritte sind die Auswahl der Permalinks-Einstellung für Ihre Beiträge (inSettings > Permalinks) oder die Auswahl eines neuen Themas (inAppearance > Themes). Wenn Sie WordPress zum ersten Mal verwenden, machen Sie sich in der Benutzeroberfläche mit Ihrem neuen CMS vertraut.