So installieren Sie WordPress mit LAMP unter Ubuntu 16.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 LAMP-Stack (Linux, Apache, MySQL und PHP) auf einem Ubuntu 16.04-Server einzurichten.

Voraussetzungen

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

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

  • * Erstellen Sie einen "+ sudo " - Benutzer auf Ihrem Server *: Wir werden die Schritte in diesem Handbuch unter Verwendung eines Nicht-Root-Benutzers mit " sudo " - Berechtigungen ausführen. Sie können einen Benutzer mit " sudo +" - Berechtigungen erstellen, indem Sie unserer Ubuntu 16.04 Anleitung zur Ersteinrichtung des Servers folgen.

  • * Installiere einen LAMP-Stack *: WordPress benötigt einen Webserver, eine Datenbank und PHP, um korrekt zu funktionieren. Das Einrichten eines LAMP-Stacks (Linux, Apache, MySQL und PHP) erfüllt alle diese Anforderungen. Folgen Sie dieses Handbuch, um diese Software zu installieren und zu konfigurieren .

  • * Sichern Sie Ihre Site mit SSL *: WordPress stellt dynamische Inhalte bereit und verwaltet die Benutzerauthentifizierung und -autorisierung. TLS / SSL ist die Technologie, mit der Sie den Datenverkehr von Ihrer Site verschlüsseln können, damit Ihre Verbindung sicher ist. Wie Sie SSL einrichten, hängt davon ab, ob Sie einen Domainnamen für Ihre Site haben.

  • * Wenn Sie einen Domain-Namen haben …​ * Der einfachste Weg, Ihre Site zu sichern, ist Let’s Encrypt, das kostenlose, vertrauenswürdige Zertifikate bereitstellt. Folgen Sie unserer Let’s Encrypt Guide for Apache, um dies einzurichten .

  • * Wenn Sie keine Domain haben …​ * und diese Konfiguration nur zum Testen oder für den persönlichen Gebrauch verwenden, können Sie stattdessen ein selbstsigniertes Zertifikat verwenden. Dies bietet die gleiche Art der Verschlüsselung, jedoch ohne Domänenüberprüfung. Folgen Sie unserem self-signed SSL guide for Apache einrichten.

Wenn Sie mit den Installationsschritten fertig sind, melden Sie sich bei Ihrem Server als "+ sudo +" - Benutzer an und fahren Sie unten fort.

Schritt 1: Erstellen Sie eine MySQL-Datenbank und einen Benutzer 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 mit dem folgenden Befehl beim MySQL-Root-Konto (Administratorkonto) an:

mysql -u root -p

Sie werden aufgefordert, das Kennwort einzugeben, das Sie bei der Installation der Software 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 werden in diesem Handbuch "+ wordpress +" verwenden, um es einfach zu halten. Sie können die Datenbank für WordPress erstellen, indem Sie Folgendes eingeben:

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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 in diesem Handbuch den Namen "+ wordpressuser +" 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 .* TO ''@'localhost' IDENTIFIED BY '';

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;

Schritt 2: Installieren Sie zusätzliche PHP-Erweiterungen

Bei der Einrichtung unseres LAMP-Stacks waren nur sehr wenige Erweiterungen erforderlich, damit PHP mit MySQL kommunizieren kann. 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-get update
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

Note

Wir werden Apache neu starten, um diese neuen Erweiterungen im nächsten Abschnitt zu nutzen. Wenn Sie 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: Passen Sie die Apache-Konfiguration so an, dass .htaccess-Überschreibungen und -Rewrites zulässig sind

Als nächstes werden wir ein paar kleinere Anpassungen an unserer Apache-Konfiguration vornehmen. Derzeit ist die Verwendung von "+ .htaccess +" - Dateien deaktiviert. WordPress und viele WordPress-Plugins verwenden diese Dateien in großem Umfang, um Änderungen am Verhalten des Webservers im Verzeichnis vorzunehmen.

Zusätzlich werden wir + mod_rewrite + aktivieren, was benötigt wird, damit WordPress-Permalinks korrekt funktionieren.

.Htaccess-Overrides aktivieren

Öffnen Sie die primäre Apache-Konfigurationsdatei, um unsere erste Änderung vorzunehmen:

sudo nano /etc/apache2/apache2.conf

Um "+ .htaccess " - Dateien zuzulassen, müssen wir die Direktive " AllowOverride " in einem " Directory +" - Block setzen, der auf unser Dokumentenstammverzeichnis zeigt. Fügen Sie am Ende der Datei den folgenden Block hinzu:

/etc/apache2/apache2.conf

. . .





. . .

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

Aktivieren Sie das Rewrite-Modul

Als nächstes können wir + mod_rewrite + aktivieren, damit wir die WordPress-Permalink-Funktion nutzen können:

sudo a2enmod rewrite

Aktivieren Sie die Änderungen

Stellen Sie vor der Implementierung der vorgenommenen Änderungen sicher, dass keine Syntaxfehler vorliegen:

sudo apache2ctl configtest

Die Ausgabe könnte eine Meldung haben, die so aussieht:

OutputAH00558: 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 unterdrücken möchten, fügen Sie der Datei "+ /etc/apache2/apache2.conf" einfach eine "+ Servername " - Direktive hinzu, die auf die Domain oder IP-Adresse Ihres Servers verweist. Dies ist jedoch nur eine Nachricht und hat keinen Einfluss auf die Funktionalität unserer Website. Solange die Ausgabe " Syntax OK +" enthält, können Sie fortfahren.

Starten Sie Apache neu, um die Änderungen zu implementieren:

sudo systemctl restart apache2

Schritt 4: Laden Sie WordPress herunter

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 -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 vorübergehend in unser Dokumentenstammverzeichnis verschieben. Bevor wir dies tun, können wir eine Dummy-Datei + .htaccess + hinzufügen und deren Berechtigungen festlegen, damit diese später von WordPress verwendet werden kann.

Erstellen Sie die Datei und legen Sie die Berechtigungen fest, indem Sie Folgendes eingeben:

touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess

Wir kopieren auch die Beispielkonfigurationsdatei 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 Verzeichnis "+ upgrade +" erstellen, damit bei WordPress nach einem Update der Software keine Berechtigungsprobleme auftreten, wenn Sie dies alleine versuchen:

mkdir /tmp/wordpress/wp-content/upgrade

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 innerhalb des Verzeichnisses kopiert werden soll, einschließlich versteckter Dateien (wie die von uns erstellte Datei ` .htaccess +`):

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

Schritt 5: Konfigurieren Sie das WordPress-Verzeichnis

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

Anpassen des Eigentums und der Berechtigungen

Eines der großen Dinge, die wir tun müssen, ist das Einrichten angemessener Dateiberechtigungen und Eigentumsrechte. Wir müssen in der Lage sein, als normaler Benutzer in diese Dateien zu schreiben, und der Webserver muss auch auf bestimmte Dateien und Verzeichnisse zugreifen und diese anpassen können, um ordnungsgemäß zu funktionieren.

Zunächst weisen wir unserem Benutzernamen das Eigentumsrecht für alle Dateien in unserem Dokumentenstamm zu. In diesem Handbuch wird "+ sammy " als Benutzername verwendet. Sie sollten dies jedoch so ändern, dass es dem Namen Ihres " sudo" -Benutzers entspricht. Wir werden der Gruppe "+ www-data" den Gruppeneigentum zuweisen:

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

Als nächstes setzen wir das + setgid + Bit in jedem der Verzeichnisse im Dokumentstamm. Dies führt dazu, dass neue Dateien, die in diesen Verzeichnissen erstellt wurden, die Gruppe des übergeordneten Verzeichnisses (das wir gerade auf "+ www-data +" gesetzt haben) anstelle der primären Gruppe des erstellenden Benutzers erben. Dies stellt lediglich sicher, dass der Webserver bei jeder Erstellung einer Datei im Verzeichnis in der Befehlszeile weiterhin Gruppeneigentum über diese Datei hat.

Wir können das "+ setuid" -Bit in jedem Verzeichnis in Ihrer WordPress-Installation setzen, indem wir Folgendes eingeben:

sudo find /var/www/html -type d -exec chmod g+s {} \;

Es gibt noch ein paar weitere abgestimmte Berechtigungen, die wir anpassen werden. Zunächst gewähren wir Gruppenschreibzugriff auf das Verzeichnis "+ wp-content +", damit das Webinterface Änderungen an Designs und Plugins vornehmen kann:

sudo chmod g+w /var/www/html/wp-content

Im Rahmen dieses Vorgangs gewähren wir dem Webserver Schreibzugriff auf den gesamten Inhalt in diesen beiden Verzeichnissen:

sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins

Dies sollte eine angemessene Berechtigung sein, mit der begonnen werden soll. Einige Plugins und Prozeduren erfordern möglicherweise zusätzliche Optimierungen.

Einrichten der WordPress-Konfigurationsdatei

Jetzt 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:

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

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:

nano /var/www/html/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/html/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/html/wp-config.php

. . .

define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

. . .

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/html/wp-config.php

. . .

define('DB_NAME', '');

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

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

. . .

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

Schritt 6: Schließen Sie die Installation über das Webinterface ab

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://

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

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:

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

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

Aktualisieren von WordPress

Sobald WordPress-Upgrades verfügbar sind, können Sie diese nicht mehr über die Benutzeroberfläche mit den aktuellen Berechtigungen installieren.

Die Berechtigungen, die wir hier ausgewählt haben, sollen für 99% der Zeit zwischen dem Upgrade ein ausgewogenes Verhältnis zwischen Sicherheit und Benutzerfreundlichkeit bieten. Sie sind jedoch etwas zu restriktiv, als dass die Software Updates automatisch anwenden könnte.

Wenn ein Update verfügbar ist, melden Sie sich als Ihr Benutzer "+ sudo +" wieder bei Ihrem Server an. Erteilen Sie dem Webserver-Prozess vorübergehend Zugriff auf das gesamte Dokumentstammverzeichnis:

sudo chown -R www-data /var/www/html

Kehren Sie nun zum WordPress-Administrationsbereich zurück und wenden Sie das Update an.

Wenn Sie fertig sind, sperren Sie die Berechtigungen aus Sicherheitsgründen erneut:

sudo chown -R  /var/www/html

Dies sollte nur erforderlich sein, wenn Sie Aktualisierungen auf WordPress selbst anwenden.

Fazit

WordPress sollte installiert und einsatzbereit sein! Einige übliche nächste Schritte sind die Auswahl der Permalinks-Einstellung für Ihre Posts (zu finden unter "+ Einstellungen> Permalinks ") oder die Auswahl eines neuen Themas (unter " Darstellung> Themes +"). Wenn Sie WordPress zum ersten Mal verwenden, machen Sie sich in der Benutzeroberfläche mit Ihrem neuen CMS vertraut.