WordPress mit LAMP
Voraussetzungen¶
- ein Rocky Linux 9.x System
sudo
-Privilegien
Einleitung¶
WordPress ist ein Open-Source-Content-Management-System (CMS), das für seine berühmte 5-Minuten-Installation bekannt ist. Es wird üblicherweise auf einem LAMP-Stack (Linux, Apache, MySQL, PHP) bereitgestellt. Obwohl effiziente lokale Entwicklungstools wie XAMPP, Vagrant und wp-env weithin verfügbar sind, bietet die manuelle Installation von WordPress auf LAMP für die lokale Entwicklung einen wertvollen praktischen Ansatz für Anfänger, die ein tieferes Verständnis anstreben.
Diese Anleitung setzt voraus, dass Sie Rocky Linux 9.x bereits installiert haben, wodurch der L
-Teil des LAMP-Stacks abgedeckt wird.
Das Ziel dieses Handbuchs besteht darin, zu untersuchen, wie Sie WordPress mit dem LAMP-Stack manuell auf einer Rocky Linux 9-Maschine installieren können. Dies ist kein produktionsreifer Leitfaden, sondern ein Ausgangspunkt, auf dem Sie aufbauen können. Das in diesem Handbuch enthaltene LAMP-Setup wird ausschließlich für die lokale Entwicklung empfohlen, wenn nicht zuvor geeignete Sicherheitsmaßnahmen ergriffen werden, die eine zusätzliche Konfiguration erfordern.
Systempakete aktualisieren¶
Stellen Sie sicher, dass die Pakete Ihres Systems auf dem neuesten Stand sind:
sudo dnf upgrade -y
Apache — Installation¶
Apache ist ein Webserver und wird unsere WordPress-Site bereitstellen. Installieren Sie ihn:
sudo dnf install httpd -y
Aktivieren Sie Apache für den automatischen Start beim Booten¶
Aktivieren Sie Apache nach der Installation, sodass es beim Booten automatisch startet:
sudo systemctl enable --now httpd
MariaDB — Installation¶
WordPress speichert dynamische Inhalte in einer MySQL-Datenbank. MariaDB ist ein freies Open-Source-Fork von MySQL. Installieren Sie sie:
sudo dnf install mariadb-server -y
MariaDB-Server aktivieren¶
Aktivieren Sie MariaDB nach der Installation, sodass es beim Booten automatisch startet:
sudo systemctl enable --now mariadb
Absicherung von MariaDB¶
Führen Sie das Skript mysql_secure_installation
aus:
sudo mysql_secure_installation --use-default
Dieses Skript führt folgende Schritte aus:
Root-Passwort festlegen, falls noch keins eingerichtet ist
Anonyme Benutzer entfernen
Remote-Root-Anmeldung verbieten
Zugriff auf die Testdatenbank entfernen
Privilegien neu laden
PHP — Installation¶
PHP ist die Programmier-Sprache, die zur Interaktion mit der MySQL-Datenbank und zur Durchführung dynamischer Aktionen verwendet wird. Es wird häufig im WordPress-Kern, in Designs und Plugins verwendet.
Installieren Sie PHP und die erforderlichen Pakete zur Verbindung mit MySQL:
sudo dnf install php php-mysqlnd php-gd php-xml php-mbstring
Nach der Installation von PHP müssen Sie Apache neu laden, um es als Apache-Modul zu installieren und seine Konfigurationsdateien zu lesen:
Apache neu starten¶
sudo systemctl restart httpd
Verwenden Sie curl
, um die neueste Version von WordPress herunterzuladen:
WordPress herunterladen und entpacken¶
curl -O https://wordpress.org/latest.tar.gz
Verwenden Sie tar
, um das heruntergeladene Archiv zu extrahieren:
tar -xzvf latest.tar.gz
Kopieren Sie die WordPress-Dateien in das öffentliche Standardverzeichnis von Apache:
sudo cp -r wordpress/* /var/www/html
owner
setzen¶
Machen Sie Apache zum Eigentümer der Dateien:
sudo chown -R apache:apache /var/www/html/
Legen Sie die Berechtigungen für die WordPress-Dateien fest:
Festlegen von Berechtigungen¶
sudo chmod -R 755 /var/www/html/
Melden Sie sich beim MySQL-CLI an:
Datenbank — Konfiguration¶
sudo mysql -u root -p
Erstellen Sie eine neue Datenbank für Ihre WordPress-Website:
Erstellen Sie eine neue Datenbank¶
CREATE DATABASE LOCALDEVELOPMENTENV;
Erstellen Sie einen Benutzer mit einem Passwort für Ihre Datenbank:
Anmerkung
Es wird dringend empfohlen, ein sicheres Passwort zu verwenden.
Einen neuen Benutzer und ein neues Passwort erstellen¶
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
Gewähren Sie mit grant
dem soeben erstellten Benutzer alle Berechtigungen für Ihre WordPress-Datenbank:
GRANT ALL PRIVILEGES ON LOCALDEVELOPMENTENV.* TO 'admin'@'localhost';
Speichern Sie mit flush
die Berechtigungen, um die Anwendung der Änderungen sicherzustellen:
FLUSH PRIVILEGES;
Beenden Sie die MySQL-CLI:
EXIT;
WordPress — Konfiguration¶
Kopieren Sie die Vorlage wp-config-sample.php
und benennen Sie sie um:
sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
Öffnen Sie die Datei wp-config.php
mit einem Texteditor Ihrer Wahl:
sudo vi /var/www/html/wp-config.php
Ersetzen der Datenbankeinstellungen¶
Sie müssen die folgenden Konstanten in Ihrer Datei wp-config.php
definieren:
define ('DB_NAME', 'LOCALDEVELOPMENTENV');
define ('DB_USER', 'admin');
define ('DB_PASSWORD', 'password');
Firewall konfigurieren¶
Öffnen Sie HTTP- und HTTPS-Dienste in Ihrer Firewall:
sudo firewall-cmd --add-service=http --add-service=https
Laden Sie firewalld
neu, um sicherzustellen, dass die Änderungen wirksam werden:
sudo systemctl reload firewalld
SELinux — Konfiguration¶
Um Apache Lese- und Schreibzugriff auf Ihre WordPress-Dateien zu gewähren, führen Sie diesen Befehl aus:
chcon -R -t httpd_sys_rw_content_t /var/www/html/
Führen Sie folgenden Befehl aus, damit Apache Netzwerkverbindungen herstellen kann:
Anmerkung
Das Flag `-P` macht diese Konfiguration über Neustarts hinweg persistent
setsebool -P httpd_can_network_connect true
Zusammenfassung¶
Sie sollten jetzt in der Lage sein, über das Netzwerk mit dem Hostnamen oder der privaten IP-Adresse des Servers eine Verbindung zu WordPress herzustellen und die WordPress-Installation abzuschließen. Denken Sie daran, dass dieses Setup in erster Linie für lokale Entwicklungszwecke gedacht ist. Für den Produktionseinsatz sind zusätzliche Konfigurationen erforderlich: Festlegen eines Domänennamens, Installieren eines SSL-Zertifikats, Härten Ihres Apache-Servers, Feinabstimmung Ihrer SELinux-Konfiguration und Implementieren von Backups. Dennoch haben Sie durch Befolgen dieser Anleitung einen soliden Ausgangspunkt für die WordPress-Entwicklung auf einem LAMP-Stack geschaffen.
Author: Joseph Brinkman
Contributors: Steven Spencer