Dieser Artikel erklärt, wie man WordPress® auf einem Linux®-Webserver mit Apache® installiert.
WordPress, ein beliebtes Open-Source-Blogging-Tool, verwendet PHP und MySQL®, um die Inhalte und die Benutzeroberfläche der Website zu verwalten.
Wichtig :Der Rackspace-Support unterstützt keine WordPress-Konfiguration. Dieser Artikel enthält Schritte als Best-Effort-Lösung, aber Ihre Entwickler sollten sie gründlich prüfen, bevor sie sie implementieren, um unerwartete Ausfallzeiten zu vermeiden.
Voraussetzungen
Führen Sie alle Befehle als Nicht-Root-Benutzer mit sudo
aus Privilegien.
Installieren Sie für diese Installation einen LAMP-Stack auf dem Server. LAMP umfasst Linux®, Apache, MySQL und PHP). Wenn Sie diese bereits installiert haben, fahren Sie mit dem nächsten Abschnitt fort. Andernfalls lesen Sie unseren Artikel zur Installation eines LAMP-Stacks auf RHEL 7-basierten Distributionen.
Erstellen Sie eine MySQL-Datenbank und einen Benutzer für WordPress
Wie bereits erwähnt, verwendet WordPress eine relationale Datenbank, um die Inhalte zu verwalten. Dieses Beispiel verwendet die zuvor installierte MariaDB, um einen Benutzer und eine Datenbank für WordPress zu erstellen. Führen Sie die folgenden Schritte aus, um eine Datenbank und einen WordPress-Benutzer zu erstellen:
- Führen Sie den folgenden Befehl aus, um sich mit dem Root-Benutzer bei MySQL anzumelden:
$ mysql -u root -p
- Erstellen Sie die Datenbank mit dem Namen wpdatabase . Denken Sie daran, dass alle MySQL-Anweisungen mit einem Semikolon enden müssen (; ):
CREATE DATABASE wpdatabase;
- Erstellen Sie einen Benutzer, den WordPress für die Arbeit an dieser Datenbank verwendet. Legen Sie den Benutzer als
wpuser
fest mit Passwortpassword
:
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
- Erteilen Sie dem Benutzer die Berechtigungen zum Verwalten der gesamten Datenbank:
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
- Verlassen Sie die MySQL-Schnittstelle:
exit
Dieses Verfahren vervollständigt die WordPress-MySQL-Anforderungen. Sie müssen keine spezielle Datenbank und keinen Benutzer für WordPress erstellen, aber wir empfehlen es aus Sicherheitsgründen dringend.
WordPress installieren
Führen Sie die folgenden Schritte aus, um WordPress zu installieren:
- Führen Sie die folgenden Befehle aus, um die PHP-Pakete zu installieren, die es WordPress ermöglichen, die Größe von Bildern für Miniaturansichten zu ändern und der MySQL-Datenbank den Zugriff auf die erforderlichen Funktionen zu ermöglichen:
$ sudo yum install php74-gd php74-mysqlnd
$ sudo service httpd restart
- Laden Sie die neueste WordPress-Version im Home-Verzeichnis Ihres Servers herunter:
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
- Extrahieren Sie alle Dateien aus dem komprimierten Ordner:
$ tar xzvf latest.tar.gz
Dieser Befehl erstellt ein Verzeichnis namens wordpress in Ihrem Home-Verzeichnis, das alle Dateien enthält, die WordPress benötigt, um richtig zu funktionieren.
- Führen Sie den folgenden Befehl aus, um die WordPress zu kopieren Verzeichnis nach /var/www/html , die alle Webseitendateien enthält, und behalten Sie die Standardberechtigungen bei:
$ sudo mv ~/wordpress/ /var/www/html/example.com
- Erstellen Sie einen Ordner, in dem WordPress alle hochgeladenen Dateien speichern kann:
$ mkdir /var/www/html/example.com/wp-content/uploads
- Die vorherigen Schritte erstellen eine WordPress-Beispielseite auf Ihrem Webserver. Damit es jedoch problemlos funktioniert, sollten Sie den Besitz der Dateien auf Ihren FTP-Benutzer oder den Apache-Benutzer und die Gruppe ändern, damit WordPress mit den entsprechenden Berechtigungen auf alle Dateien zugreifen kann. Führen Sie den folgenden Befehl aus:
$ sudo chown -R FTP_USER:apache /var/www/html/example.com
WordPress konfigurieren
Obwohl Sie den größten Teil der Konfiguration über eine grafische Benutzeroberfläche (GUI) auf der Webseite vornehmen, müssen Sie einige Konfigurationsänderungen auf dem Server vornehmen. Führen Sie die folgenden Schritte aus, um den Server zu konfigurieren:
- Wechseln Sie in den Ordner, in dem sich alle Webdateien befinden:
$ cd /var/www/html
- Weil WordPress eine Konfigurationsdatei namens wp-config.php benötigt , die nicht vorhanden ist, führen Sie den folgenden Befehl aus, um die Beispieldatei zu kopieren und umzubenennen:
$ sudo cp wp-config-sample.php wp-config.php
- Bearbeiten Sie die Konfigurationsdatei mit dem Texteditor wie nano oder vi. Dieses Beispiel verwendet
vi
:
$ sudo vi wp-config.php
- Geben Sie die Datenbankinformationen in den MySQL-Einstellungen an Sektion. Geben Sie den Datenbanknamen und die unter Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress definierten Benutzeranmeldeinformationen ein Abschnitt, ähnlich dem folgenden Beispiel:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');
/** MySQL database username */
define('DB_USER', 'wpuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
WordPress sichern
Dateiberechtigungen ändern
Gemäß der WordPress-Dokumentation erhöht das Ändern von Dateiberechtigungen im Dokumentenstammverzeichnis Ihrer Website die Sicherheit Ihrer Website.
$ find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
$ find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Innerhalb Ihrer vHost-Konfiguration oder innerhalb der .htaccess können Sie den folgenden Block platzieren, um zu verhindern, dass Benutzer auf Skripte zugreifen können.
# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
# BEGIN WordPress
Deaktiviert die PHP-Ausführung im Upload-Verzeichnis
Wenn eine Wordpress-Site kompromittiert wird, werden oft Hintertüren in beschreibbare Verzeichnisse hochgeladen, die sich als legitime Wordpress-Dateien tarnen. Ein Schritt, den Sie unternehmen können, um Ihre bestehende Sicherheitsstrategie zu ergänzen, besteht darin, die PHP-Ausführung in bestimmten Verzeichnissen zu deaktivieren.
Eine der häufigsten ist das Deaktivieren der PHP-Ausführung im Verzeichnis wp-content/uploads. Dies kann folgendermaßen durchgeführt werden:
$ vim /var/www/vhosts/example.com/wp-content/uploads/.htaccess
[...]
# Prevent PHP execution
<Files *.php>
deny from all
</Files>
[...]
WARNUNG: Dies kann Ihr Design beschädigen, wenn es die Ausführung von PHP im Verzeichnis wp-content/uploads erfordert. Wenn Sie feststellen, dass etwas nicht funktioniert, setzen Sie Ihre Änderung einfach zurück und die Website funktioniert wieder.
Xmlrpc.php-Angriffe blockieren
Wordpress verwendet XML-RPC, um Funktionen innerhalb von Wordpress remote auszuführen. Häufig versuchen böswillige Parteien, xmlrpc.php durch Brute Force auszunutzen, was Tausende von Anfragen an den Webserver senden und daher Ressourcenkonflikte verursachen kann.
Ein xmlrpc.php-Angriff kann erkannt werden, indem die Zugriffsprotokolle der Website überprüft werden. Wenn Sie in kurzer Zeit Hunderte oder Tausende von Anfragen sehen, die ähnlich wie unten aussehen, ist das ein Zeichen dafür, dass xmlrpc.php angegriffen wird:
$ tail /var/log/httpd/example.com-access.log
[...]
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:03 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[...]
Sie können Brute-Force-Angriffe auf xmlrpc.php in Apache entschärfen, indem Sie Folgendes in die .htaccess-Datei einfügen:
$ vim /var/www/vhosts/example.com/.htaccess
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>
SSL für wp-admin-Anmeldungen erzwingen
$ vim /var/www/vhosts/example.com/wp-config.php
[...]
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* That's all, stop editing! Happy blogging. */
[...]
Schließen Sie die Konfiguration in der GUI ab
Sie können jetzt auf Ihre WordPress-Seite zugreifen, indem Sie zu http://
Um jederzeit auf dieses Dashboard zuzugreifen, gehen Sie zu http://
Schlussfolgerung
WordPress ist ein sehr intuitives Content Management System (CMS), mit dem Sie schnell und kostenlos eine Blog-Webseite einrichten können. Nachdem Sie die Schritte in diesem Artikel ausgeführt haben, können Sie Ihre WordPress-Site verwenden.