WordPress ist eine sehr beliebte Open-Source-Technologie zum Erstellen von Websites und Blogs im Internet. WordPress-Sites werden von 63 % aller Websites genutzt, die ein Content Management System (CMS) verwenden, und stellen 36 % aller Websites dar, die derzeit online sind.
Es gibt viele verschiedene Ansätze, um Zugriff auf WordPress zu erhalten. Außerdem sind manche Einrichtungsverfahren komplexer als andere. Dieses Tutorial richtet sich an Personen, die eine WordPress-Instanz über die Befehlszeile auf einem nicht verwalteten Cloud-Server installieren und verwalten möchten. Zwar beinhaltet dieser Ansatz mehr Schritte als eine fertige WordPress-Installation, doch bietet er Administratoren mehr Kontrolle über ihre WordPress-Umgebung.
Wenn Sie auf eine fertige WordPress-Installation zugreifen möchten, bietet DigitalOcean Marketplace eine One-Click-App, die Sie beim Starten Ihres Servers durch die Installation und ersten Schritten mit WordPress begleitet.
Je nach Bedarf und Zielen finden Sie möglicherweise andere Optionen, die besser geeignet sind. Als Open-Source-Software kann WordPress kostenlos heruntergeladen und installiert werden. Um im Internet verfügbar zu sein, müssen Sie aber wahrscheinlich Cloud-Infrastruktur und einen Domänennamen kaufen. Folgen Sie diesem Leitfaden weiter, wenn Sie erfahren möchten, wie die serverseitige Installation und Einrichtung einer WordPress-Site funktioniert.
Dieses Tutorial wird einen LAMP-Stack (Linux, Apache, MySQL und PHP) nutzen. Er ist eine Option für eine Serverarchitektur, die WordPress unterstützt, indem das Linux-Betriebssystem, der Apache-Webserver, die MySQL-Datenbank und die PHP-Programmiersprache bereitgestellt werden. Wir installieren und richten WordPress via LAMP auf einem Linux 20.04-Server ein.
Um dieses Tutorial abzuschließen, benötigen Sie Zugriff auf einen Ubuntu 20.04-Server und müssen vor Beginn dieses Leitfadens folgende Schritte abgeschlossen haben:
sudo
-Berechtigungen gibt.Wenn Sie dieses Setup abgeschlossen haben, melden Sie sich bei Ihrem Server als sudo
-Benutzer an und fahren Sie dann wie unten gezeigt fort.
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.
Melden Sie sich zunächst im (administrativen) MySQL-Root-Konto an, indem Sie diesen Befehl ausgeben (beachten Sie, dass dies nicht der root user Ihres Servers ist):
- 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.
Anmerkung: Wenn Sie nicht per root auf Ihre MySQL-Datenbank zugreifen können, können Sie als sudo
-Benutzer das Passwort Ihres root user aktualisieren, indem Sie sich wie folgt in der Datenbank anmelden:
- sudo mysql -u root
Sobald Sie die MySQL-Eingabeaufforderung sehen, können Sie das Passwort des root user aktualisieren. Ersetzen Sie hier new_password
durch ein starkes Passwort Ihrer Wahl.
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
Sie können nun EXIT;
eingeben und sich mit dem folgenden Befehl wieder per Passwort in der Datenbank anmelden.
- mysql -u root -p
Innerhalb der Datenbank können wir eine exklusive Datenbank erstellen, die WordPress kontrollieren kann. Sie können diese Datenbank nennen, wie Sie möchten. In diesem Leitfaden werden wir jedoch den Namen wordpress verwenden. 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 unsere neue Datenbank verwenden werden. Die Erstellung spezifischer Datenbanken und Konten kann aus einer Management- und Sicherheitsperspektive hilfreich sein. Wir werden in diesem Leitfaden den Namen wordpressuser verwenden. Sie können jedoch einen beliebigen Namen wählen, der für Sie relevant ist.
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, bei password
ein starkes Passwort für Ihren Datenbankbenutzer zu wählen:
- CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Als Nächstes teilen Sie der Datenbank mit, dass unser wordpressuser kompletten Zugriff auf die von uns erstellte Datenbank haben soll:
- GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
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;
Im nächsten Schritt schaffen wir Grundlagen für WordPress-Plugins, indem wir PHP-Erweiterungen für unseren Server herunterladen.
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
Dadurch wird die Grundlage für die Installation zusätzlicher Plugins in unserer WordPress-Site geschaffen.
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 müssen Apache neu starten, um die neuen Erweiterungen zu laden. Im nächsten Abschnitt werden wir weitere Konfigurationen in Apache vornehmen. Sie können also bis dahin warten oder die PHP-Erweiterungen jetzt abschließen.
- sudo systemctl restart apache2
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 in diesem Leitfaden /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. Wenn Sie unserem LAMP-Tutorial gefolgt sind, kann dies in beiden Fällen Ihr Domänenname anstelle von wordpress
sein.
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 auf diesem Server nur eine Website hosten wollen. Ansonsten ist es am besten, die notwendige Konfiguration in logische Chunks von einer Datei pro Site aufzuteilen.
Nach Festlegung unserer Pfade können wir nun mit .htaccess
arbeiten, sodass Apache Konfigurationsänderungen anhand einzelner Verzeichnisse handhaben kann.
Derzeit ist die Verwendung von .htaccess
-Dateien deaktiviert. WordPress und viele WordPress-Plugins setzen diese Dateien weitläufig für kleine In-Directory-Änderungen des Webserver-Verhaltens ein.
Öffnen Sie die Apache-Konfigurationsdatei für Ihre Website mit einem Texteditor wie nano.
- 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:
<Directory /var/www/wordpress/>
AllowOverride All
</Directory>
Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei. In nano können Sie dazu zusammen Strg
und X
, dann Y
und anschließend die Eingabetaste
drücken.
Als Nächstes können wir mod_rewrite
aktivieren, damit wir die WordPress Permalink-Funktion verwenden können:
- sudo a2enmod rewrite
Dadurch können Sie in Ihren Posts mehr für Menschen lesbare Permalinks verwenden, wie die folgenden zwei Beispiele zeigen:
http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name
Der Befehl a2enmod
ruft ein Skript auf, das das angegebene Modul innerhalb der Apache-Konfiguration aktiviert.
Bevor wir die von uns vorgenommenen Änderungen implementieren, überprüfen wir, ob wir keine Syntaxfehler gemacht haben. Dazu führen wir folgenden Test aus.
- sudo apache2ctl configtest
Sie erhalten möglicherweise eine Ausgabe wie diese:
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 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. Dies ist jedoch nur eine Nachricht und beeinflusst die Funktionalität Ihrer Website nicht. Solange die Ausgabe Syntax OK
enthält, können Sie weitermachen.
Starten Sie Apache neu, um die Änderungen zu implementieren. Nehmen Sie den Neustart auch dann vor, wenn Sie in diesem Tutorial bereits einen Neustart ausgeführt haben.
- sudo systemctl restart apache2
Als Nächstes laden wir WordPress selbst herunter und richten es ein.
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 (wir empfehlen ein temporäres Verzeichnis wie /tmp
) und laden Sie die komprimierte Version herunter.
- 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
Außerdem kopieren wir die Muster-Konfigurationsdatei in den Dateinamen, den WordPress 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 zu tun:
- 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
Sorgen Sie dafür, dass Sie das Verzeichnis /var/www/wordpress
durch das Verzeichnis ersetzen, das Sie auf Ihrem Server eingerichtet haben.
Bevor wir das webbasierte WordPress Setup vornehmen, müssen wir einige Elemente in unserem WordPress-Verzeichnis anpassen.
Ein wichtiger Schritt, den wir erledigen müssen, ist die Einrichtung vernünftiger Dateiberechtigungen und Dateibesitzer.
Wir beginnen damit, das Eigentum an allen Dateien auf den Benutzer und die Gruppe www-data zu übertragen. Das ist der Benutzer, unter dem der Apache-Webserver läuft; Apache muss WordPress-Dateien lesen und schreiben können, damit die Website bereitgestellt werden kann und sich automatisch Updates ausführen lassen.
Aktualisieren Sie das Eigentum mit dem Befehl chown
, um den Dateibesitz zu ändern. Achten Sie darauf, dass Sie auf das richtige Verzeichnis Ihres Servers verweisen.
- sudo chown -R www-data:www-data /var/www/wordpress
Führen Sie als Nächstes zwei find
-Befehle aus, um die richtigen Berechtigungen für die WordPress-Verzeichnisse und -Dateien festzulegen:
- sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
- sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;
Diese Berechtigungen sollten es Ihnen erlauben, effektiv mit WordPress zu arbeiten. Beachten Sie jedoch, dass einige Plugins und Verfahren zusätzliche kleine Änderungen benötigen.
Jetzt müssen wir Änderungen an der WordPress-Hauptkonfigurationsdatei vornehmen.
Wenn wir die Datei öffnen, müssen wir zunächst einige geheime Schlüssel ändern, um unsere Installation besser zu schützen. WordPress stellt einen sicheren Generator für diese Werte bereit, damit Sie sie sich nicht ausdenken müssen. Diese werden nur intern verwendet, d. h. komplexe, sichere Werte haben keine Auswirkungen auf die Benutzer.
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 erhalten eindeutige Werte zurück, die einer Ausgabe mit dem folgenden Block ähneln.
Warnung! Es ist wichtig, dass Sie jedes Mal eindeutige Werte anfordern. Kopieren Sie NICHT die folgenden Werte!
Outputdefine('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
Suchen Sie nach dem Abschnitt, der die Beispielwerte für diese Einstellungen enthält.
. . .
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:
. . .
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 werden wir einige der Datenbank-Verbindungseinstellungen am Anfang der Datei ändern. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Passwort anpassen, das Sie 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 Dateisystemmethode 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:
. . .
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
. . .
define('FS_METHOD', 'direct');
Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.
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änennamen oder zur öffentlichen IP-Adresse Ihres Servers:
https://server_domain_or_IP
Wählen Sie die Sprache aus, die Sie verwenden möchten:
Als Nächstes kommen Sie zur Setup-Hauptseite.
Wählen Sie einen Namen für Ihre WordPress-Site aus und legen Sie einen Benutzernamen fest. Es wird empfohlen, eindeutige Namen zu wählen und aus Sicherheitgründen allgemeine Benutzernamen wie „admin“ zu vermeiden. 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:
Wenn Sie weiter klicken, kommen Sie zu einer Seite, auf der Sie sich anmelden müssen:
Nach der Anmeldung gelangen Sie zum WordPress-Administrations-Dashboard:
Jetzt können Sie mit der Gestaltung Ihrer WordPress-Website beginnen! Wenn Sie WordPress das erste Mal verwenden, schauen Sie sich die Oberfläche an, um Ihre neue CMS kennenzulernen.
Herzlichen Glückwunsch! WordPress ist nun installiert und bereit für den Einsatz!
Jetzt können Sie Folgendes tun:
Einstellungen > Permalinks
finden.Appearance > Themes
(Erscheinungsbild > Themen) ein neues Thema wählen.Plugins > Add New
(Plugins > Neu hinzufügen) neue Plugins installieren, um die Funktionalität Ihrer Website zu erhöhen.Users > Add New
(Benutzer > Neu hinzufügen).Sie können weitere Ressourcen für alternative Methoden zur Installation von WordPress finden, erfahren, wie sich WordPress in verschiedenen Server-Distributionen installieren lässt, Ihre WordPress-Installationen automatisieren und WordPress-Websites skalieren, indem Sie sich unser WordPress Community-Tag ansehen.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Followed the instructions to the letter, ended up WordPress not being able to establish a connection to the database. WordPress and database are on the same server. I can login to mysql using the WordPress user and password, even when specifying -h localhost to mysql. DB info is properly given in wp-admin.php. WordPress resides in /var/www/wordpress, with a subdomain pointing at that folder on my server.