Tutorial

Installation von WordPress mit LAMP auf Ubuntu 18.04

UbuntuApacheWordPressLAMP StackUbuntu 18.04

Eine frühere Version dieses Tutorials wurde von Justin Ellingwood verfasst

Einführung

WordPress ist das beliebteste CMS (Content Management System) im Internet. Damit können Sie flexible Blogs und Websites auf einem MySQL Backend mit PHP-Verarbeitung einrichten. WordPress weist eine enorm hohe Akzeptanz auf und ist eine großartige Wahl, um eine Website schnell zu erstellen und freizuschalten. Nach dem Einrichten kann fast die gesamte Verwaltung vom Web-Frontend aus erfolgen.

In diesem Leitfaden konzentrieren wir uns auf das Einrichten einer WordPress-Instanz auf einem LAMP-Stack (Linux, Apache, MySQL und PHP) auf einem Ubuntu 18.04 Server.

Voraussetzungen

Um dieses Tutorial fertigzustellen, benötigen Sie Zugriff auf einen Ubuntu 18.04 Server.

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

  • Erstellen Sie einen sudo-Benutzer auf Ihrem Server: In diesem Leitfaden verwenden wir einen Benutzer ohne Rootberechtigung mit sudo-Rechten. Sie können einen Benutzer mit sudo-Rechten erstellen, indem Sie unserem Leitfaden zur Ersteinrichtung des Ubuntu 18.04 Servers folgen.
  • Installation eines LAMP-Stacks: Wordpress benötigt einen Webserver, eine Datenbank und PHP, um richtig zu funktionieren. Das Einrichten eines LAMP-Stacks (Linux, Apache, MySQL und PHP) erfüllt alle diese Anforderungen. Folgen Sie diesem Leitfaden zur Installation und Konfiguration dieser Software.
  • Sicherung Ihrer Site mit SSL: WordPress stellt dynamischen Inhalt bereit und kümmert sich um die Benutzerauthentifizierung und Berechtigung. TLS/SSL ist die Technologie, die es Ihnen ermöglicht, den Datenverkehr von Ihrer Website zu verschlüsseln, damit die Verbindung gesichert ist. Die Art, wie Sie SSL einichten, hängt davon ab, ob Sie einen Domänenamen für Ihre Site haben.
    • *Wenn Sie einen Domänenamen haben… *können Sie Ihre Website am einfachsten mit Let’s Encrypt sichern, das kostenlose, vertrauenswürdige Zertifikate bereitstellt. Folgen Sie dem Leitfaden Let’s Encrypt für Apache, um dieses Setup vorzunehmen.
    • Wenn Sie keine Domäne haben… und Sie diese Konfiguration nur zu Testzwecken oder privat verwenden, können Sie stattdessen ein selbstsigniertes Zertifikat verwenden. Damit wird die gleiche Art der Verschlüsselung bereitgestellt, aber ohne Domänenvalidierung. Folgen Sie dem Leitfaden für selbstsigniertes SSL für Apache, um dieses Setup vorzunehmen.

Wenn Sie dieses Setup abgeschlossen haben, melden Sie sich bei Ihrem Server als sudo-Benutzer an und fahren Sie dann wie unten gezeigt fort.

Schritt 1 – Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress

Der erste Schritt dient der Vorbereitung. WordPress verwendet MySQL, um Site- und Benutzerinformationen zu verwalten und zu speichern. Wir haben bereits MySQL installiert, müssen aber eine Datenbank und einen Benutzer für WordPress erstellen.

Dazu melden Sie sich beim Konto MySQL Root (administrativ) an, indem Sie diesen Befehl eingeben:

  • mysql -u root -p

Sie werden aufgefordert, das Passwort einzugeben, das Sie für das MySQL Root-Konto festgelegt haben, als Sie die Software installiert haben.

Zuerst können wir eine separate Datenbank erstellen, die von WordPress kontrolliert wird. Sie können ihr einen beliebigen Namen geben, aber wir nennen sie der Einfachheit halber in diesem Leitfaden wordpress. Erstellen Sie die Datenbank für WordPress, indem Sie Folgendes eingeben:

  • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

*Anmerkung: *Jede MySQL -Anweisung muss mit einem Semikolon (;) enden. Vergewissern Sie sich, dass dies der Fall ist, falls ein Problem auftritt.

Als Nächstes erstellen wir ein separates MySQL-Benutzerkonto, das wir ausschließlich für die neue Datenbank verwenden werden. Aus Verwaltungs- und Sicherheitsaspekten ist es sinnvoll, Datenbanken und Konten mit nur einer Funktion zu erstellen. In diesem Leitfaden verwenden wir den Namen wordpressuser. Sie können den Namen ändern.

Wir erstellen dieses Konto, legen ein Passwort fest und gewähren Zugriff auf die von uns erstellte Datenbank. Dazu geben wir den folgenden Befehl ein. Denken Sie daran, ein starkes Passwort für Ihren Datenbankbenutzer zu wählen:

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

Sie haben jetzt ein Datenbank- und ein Benutzerkonto, das jeweils speziell für WordPress eingerichtet wurde. Wir müssen die Rechte leeren, damit die aktuelle Instanz von MySQL die neuesten Änderungen erkennt:

  • FLUSH PRIVILEGES;

Beenden Sie MySQL, indem Sie Folgendes eingeben:

  • EXIT;

Schritt 2 – Installation von zusätzlichen PHP-Erweiterungen

Beim Einrichten des LAMP-Stacks benötigen wir nur eine sehr minimale Menge von Erweiterungen, damit PHP mit MySQL kommuniziert. WordPress und viele seiner Plugins nutzen zusätzliche PHP-Erweiterungen.

Laden Sie einige der beliebtesten PHP-Erweiterungen zur Nutzung mit WordPress herunter und installieren diese, indem Sie Folgendes eingeben:

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

Anmerkung: Jedes WordPress-Plugin hat seinen eigenen Satz an Anforderungen. Einige können die Installation zusätzlicher PHP-Pakete erfordern. Prüfen Sie Ihre Plugin-Dokumentation, um deren PHP-Anforderungen herauszufinden. Wenn sie verfügbar sind, können sie wie oben gezeigt mit apt installiert werden.

Wir starten dann Apache neu, um diese neuen Erweiterungen im nächsten Abschnitt zu laden. Wenn Sie wieder hierher zurückkehren, um zusätzliche Plugins zu installieren, können Sie Apache jetzt neu starten, indem Sie Folgendes eingeben:

  • sudo systemctl restart apache2

Schritt 3 – Anpassung der Apache-Konfiguration, um .htaccess Override und Rewrites zu erlauben

Als Nächstes werden wir einige kleinere Anpassungen an unsere Apache-Konfiguration vornehmen. Basierend auf den erforderlichen Tutorials sollten Sie eine Konfigurationsdatei für Ihre Site im Verzeichnis /etc/apache2/sites-available/ haben. Als Beispiel verwenden wir /etc/apache2/sites-available/wordpress.conf, aber Sie sollten den Pfad zu Ihrer Konfigurationsdatei ggf. ersetzen.

Außerdem verwenden wir /var/www/wordpress als Root-Verzeichnis unserer WordPress-Installation. Sie sollten das in Ihrer eigenen Konfiguration angegebene Web-Root verwenden.

Anmerkung: Es ist möglich, dass Sie die Standardkonfiguration 000-default.conf verwenden (mit /var/www/html als Ihre Web-Root). Das ist in Ordnung, wenn Sie nur eine Website auf diesem Server hosten wollen. Ansonsten ist es am besten, die notwendige Konfiguration in logische Chunks von einer Datei pro Site aufzuteilen.

Aktivieren von .htaccess Overrides

Derzeit ist die Verwendung von .htaccess-Dateien deaktiviert. WordPress und viele WordPress-Plugins setzen diese Dateien weitläufig für kleine Veränderungen des Webserver-Verhaltens im Verzeichnis ein.

Öffnen Sie die Apache-Konfigurationsdatei für Ihre Website:

  • sudo nano /etc/apache2/sites-available/wordpress.conf

Um .htaccess-Dateien zu erlauben, müssen wir die Anweisung AllowOverride in einem Verzeichnisblock festlegen, der auf unsere Dokument-Root verweist. Fügen Sie Ihrer Konfigurationsdatei im VirtualHost-Block den folgenden Textblock hinzu, wobei Sie sichergehen müssen, dass Sie das korrekte Web-Root-Verzeichnis verwenden:

/etc/apache2/sites-available/wordpress.conf
<Directory /var/www/wordpress/>
    AllowOverride All
</Directory>

Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

Aktivierung des Rewrite-Moduls

Als Nächstes können wir mod_rewrite aktivieren, damit wir die WordPress Permalink-Funktion verwenden können:

  • sudo a2enmod rewrite

Aktivierung der Änderungen

Bevor wir die von uns vorgenommenen Änderungen implementieren, sollten Sie bestätigen, dass Ihnen keine Syntaxfehler unterlaufen sind:

  • sudo apache2ctl configtest

Die Ausgabe kann eine vergleichbare Meldung enthalten:

Output
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

Wenn Sie die oberste Zeile ausblenden wollen, fügen Sie Ihrer Haupt- (global) Apache-Konfigurationsdatei unter /etc/apache2/apache2.conf einfach einen ServerName hinzu. Der ServerName kann die Domäne oder IP-Adresse Ihres Servers sein. Hier handelt sich allerdings nur um eine Nachricht, die die Funktionalität der Site nicht beeinträchtigt. Solange die Ausgabe Syntax OK enthält, können Sie weitermachen.

Starten Sie Apache erneut, um Ihre Änderungen zu implementieren:

  • sudo systemctl restart apache2

Als Nächstes laden wir WordPress selbst herunter und richten es ein.

Schritt 4 – Herunterladen von WordPress

Jetzt ist unsere Server-Software konfiguriert, und wir können WordPress herunterladen und einrichten. Aus Sicherheitsgründen ist es immer ratsam, die neueste Version von WordPress von der Site zu erhalten.

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

  • cd /tmp
  • curl -O 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 gleich in unsere Dokument-Root verschieben. Zuvor können wir eine .htaccess-Stellvertreterdatei hinzufügen, damit diese für WordPress später verfügbar ist.

Erstellen Sie die Datei, indem Sie Folgendes eingeben:

  • touch /tmp/wordpress/.htaccess

Wir kopieren auch die Muster-Konfigurationsdatei in den Dateinamen, den WordPress tatsächlich liest:

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

Wir können auch das upgrade-Verzeichnis erstellen, damit WordPress keine Berechtigungsprobleme bekommt, wenn es nach einem Software-Update versucht, dies selbst abzuwickeln:

  • mkdir /tmp/wordpress/wp-content/upgrade

Jetzt können wir den gesamten Inhalt des Verzeichnisses in unsere Dokument-Root kopieren. An das Ende unseres Quellverzeichnisses setzen wir einen Punkt, damit alles im Verzeichnis kopiert werden kann, einschließlich ausgeblendeter Dateien (wie die von uns erstellte .htaccess-Datei):

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

Schritt 5 – Konfiguration des WordPress-Verzeichnisses

Bevor wir das webbasierte WordPress Setup vornehmen, müssen wir einige Elemente in unserem WordPress-Verzeichnis anpassen.

Anpassung des Eigentums und der Berechtigungen

Das Wichtigste ist das Einrichten vernünftiger Dateiberechtigungen und Eigentumsrechte.

Wir beginnen damit, das Eigentum an allen Dateien auf www-data-Benutzer und -Gruppen zu übertragen. Das ist der Benutzer, unter dem der Apache-Webserver läuft, und Apache muss WordPress-Dateien lesen und schreiben können, damit die Website verwendet werden kann und automatisch Updates ausgeführt werden können.

Aktualisieren Sie die Eigentsumsrechte mit chown:

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

Als Nächstes werden wir zwei find Befehle ausführen, um die richtigen Berechtigungen in den WordPress-Verzeichnissen und -Dateien einzustellen:

  • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
  • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Das sollten von Anfang an angemessene Berechtigungen sein. Einige Plugins und Verfahren können zusätzliche Veränderungen erfordern.

Einrichten der WordPress-Konfigurationsdatei

Jetzt müssen wir Änderungen an der WordPress-Hauptkonfigurationsdatei vornehmen.

Wenn wir die Datei öffnen, werden wir zunächst einige geheime Schlüssel ändern müssen, um unsere Installation zu sichern. WordPress stellt einen sicheren Generator für diese Werte bereit, damit Sie sie sich nicht ausdenken müssen. Sie werden nur intern verwendet, d. h. komplexe, sichere Werte haben keine Auswirkungen auf die Benutzerfreundlichkeit.

Um sichere Werte vom WordPress Secret Key Generator zu erhalten, geben Sie Folgendes ein:

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

Sie werden eindeutige Werte erhalten, die ungefähr so aussehen:

Warnung! Es ist wichtig, dass Sie jedes Mal eindeutige Werte anfordern. Kopieren Sie NICHT die unten aufgeführten Werte!

Output
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

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

Öffnen Sie jetzt die WordPress-Konfigurationsdatei:

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

Finden Sie den Abschnitt, der die Stellvertreterwerte für diese Einstellungen enthält. Dies sollte 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 aus der 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 Datenbank-Verbindungseinstellungen am Anfang der Datei ändern. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Passwort anpassen, das wir in MySQL konfiguriert haben.

Wir müssen außerdem die Methode festlegen, die WordPress verwenden sol, um in das Dateisystem zu schreiben. Da wir dem Webserver das Recht auf beliebiges Schreiben erteilt haben, können wir die Dateisystem-Methode auf „direct“ festlegen. Wenn wir das nicht auf unsere aktuellen Einstellungen anpassen, fragt WordPress bei bestimmten Handlungen nach FTP-Anmeldeangaben.

Diese Einstellung kann unterhalb der Datenbank-Verbindungseinstellungen oder anderswo in der Datei eingefü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');

Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

Schritt 6 – Abschluss der Installation über die Web-Oberfläche

Jetzt ist die Serverkonfiguration abgeschlossen, und wir können die Installation über die Web-Oberfläche abschließen.

Navigieren Sie im Web-Browser zum Domänenamen oder zur öffentlichen IP-Adresse Ihres Servers:

https://server_domain_or_IP

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

WordPress-Sprachauswahl

Als Nächstes kommen Sie zur Setup-Hauptseite.

Wählen Sie einen Namen für Ihre WordPress-Website und einen Benutzernamen aus (aus Sicherheitsgründen sollten Sie kein Wort mit „admin“ wählen). Ein starkes Passwort wird automatisch erstellt. Speichern Sie dieses oder wählen Sie anderes starkes Passwort aus.

Geben Sie Ihre E-Mail-Adresse ein und wählen Sie, ob Sie Suchmaschinen aus der Indexierung Ihrer Site ausschließen wollen:

WordPress-Setup-Installation

Wenn Sie weiter klicken, kommen Sie zu einer Seite, auf der Sie sich anmelden müssen:

WordPress-Anmeldung

Nach der Anmeldung gelangen Sie zum WordPress-Administrations-Dashboard:

WordPress-Anmeldung

Zusammenfassung

WordPress sollte jetzt installiert und einsatzbereit sein! Einige häufige nächste Schritte sind die Auswahl der Permalink-Einstellungen für Ihre Posts (diese sind unter Einstellungen>Permalinks zu finden) oder die Auswahl eines neuen Designs (in Darstellung>Design). Wenn Sie WordPress das erste Mal verwenden, schauen Sie sich die Oberfläche an, um Ihre neue CMS kennenzulernen.

Creative Commons License