GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Installieren Sie WordPress unter Linux mit Apache

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:

  1. Führen Sie den folgenden Befehl aus, um sich mit dem Root-Benutzer bei MySQL anzumelden:
$ mysql -u root -p
  1. Erstellen Sie die Datenbank mit dem Namen wpdatabase . Denken Sie daran, dass alle MySQL-Anweisungen mit einem Semikolon enden müssen (; ):
CREATE DATABASE wpdatabase;
  1. Erstellen Sie einen Benutzer, den WordPress für die Arbeit an dieser Datenbank verwendet. Legen Sie den Benutzer als wpuser fest mit Passwort password :
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
  1. Erteilen Sie dem Benutzer die Berechtigungen zum Verwalten der gesamten Datenbank:
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. 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:

  1. 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
  1. Laden Sie die neueste WordPress-Version im Home-Verzeichnis Ihres Servers herunter:
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
  1. 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.

  1. 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
  1. Erstellen Sie einen Ordner, in dem WordPress alle hochgeladenen Dateien speichern kann:
$ mkdir /var/www/html/example.com/wp-content/uploads
  1. 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:

  1. Wechseln Sie in den Ordner, in dem sich alle Webdateien befinden:
$ cd /var/www/html
  1. 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
  1. Bearbeiten Sie die Konfigurationsdatei mit dem Texteditor wie nano oder vi. Dieses Beispiel verwendet vi :
$ sudo vi wp-config.php
  1. 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:// navigieren . Geben Sie die Installationssprache, die Standortinformationen und den Benutzer ein, um auf das Administratorportal zuzugreifen, wenn Sie dazu aufgefordert werden. Nachdem Sie diese Konfiguration abgeschlossen haben, leitet Sie das System zum Haupt-WordPress-Dashboard weiter.

Um jederzeit auf dieses Dashboard zuzugreifen, gehen Sie zu http:///wp-login.php oder http:///wp-login.php .

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.


Linux
  1. Installieren Sie phpMyAdmin auf Ubuntu 20.04 mit Apache

  2. Installieren Sie phpMyAdmin auf Debian 11 mit Apache

  3. Installieren Sie Apache 2 von Source unter Linux

  4. So installieren Sie Apache 2 mit SSL unter Linux (mit mod_ssl, openssl)

  5. Einrichten einer Subdomain mit Apache unter Linux

Installieren Sie WordPress 4.0 mit Nginx 1.6 auf Linux Mint 17

So installieren Sie WordPress mit Apache in Ubuntu 20.04

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04

So installieren Sie WordPress auf CentOS 7.1 mit Apache

Installieren Sie WonderCMS auf Rocky Linux 8

Installieren Sie Windows 10 unter Linux mit VirtualBox