Installieren Sie WordPress 5 mit Apache auf Debian 9

Dieses Tutorial zeigt Ihnen, wie Sie die neueste Version von WordPress 5 auf einem LAMP-Stapel in Debian 9 – Stretch installieren und konfigurieren. WordPress ist zweifellos eines der beliebtesten Open-Source-Content-Management-Systeme oder CMS, die heutzutage für das Internet-Publishing verwendet werden, das mehr als 60 Millionen Websites weltweit betreibt, egal ob kleine Blogging-Sites oder namhafte Marken. Basierend auf PHP und MySQL-Engine, ist WordPress oft mit der LAMP-Sammlung verbunden, entweder auf dedizierten Servern oder virtuellen privaten Servern oder auf Shared Web-Hosting-Anbietern. Das Akronym LAMP beschreibt eine Sammlung von Software, auch bekannt als Software-Bundle, das in der Regel aus dem Linux-Open-Source-Kernel besteht, unabhängig von der gewählten Distribution, dem Apache HTTP-Server, der aufgrund seiner Stabilität, Flexibilität und Leistung einer der beliebtesten Open-Source-Webserver im Internet ist, der PHP-Server-seitig interpretierten Programmiersprache und dem MariaDB Relationalen Datenbank-Managementsystem (RDBMS), das eine der beliebtesten Datenbanksoftware ist, die von der Open-Source-Community aus dem ursprünglichen MySQL gespalten und gleichzeitig entwickelt wurde.

Anforderungen

  • Eine saubere Installation des Debian 9-Betriebssystems auf einem virtuellen privaten Server oder einer virtuellen Maschine oder direkt auf einer dedizierten Bare-Metal-Maschine.
  • SSH-Fernzugriff bei einem VPS oder einem entfernten Server oder direkter Konsolenzugriff
  • Mindestens eine statische IP-Adresse für eine Netzwerkschnittstelle, die auf dem Server konfiguriert ist.
  • Falls die Webseite im Internet öffentlich zugänglich sein sollte, benötigen Sie einen registrierten Public Domain-Namen mit korrekten DNS-Einträgen. In diesem Tutorial verwenden wir die Beispieldomäne example.com und eine statische IP-Adresse aus dem privaten Bereich, im NAT, hinter dem Hauptrouter. Die Domain wird aus dem Internet zugänglich sein, indem der Port die Apache 80 und 443 Ports von der Routerseite an das interne, selbst gehostete LAN der virtuellen Maschine weiterleitet.

LAMP Software-Paket installieren

Das erste, was Sie tun sollten, bevor Sie mit der Installation aller LAMP-Komponenten beginnen, ist, sich am Debian 9-Server anzumelden und eine aktuelle Prozedur für alle Systemkomponenten, wie Kernel-Upgrades, Paket-Updates oder Sicherheitspatches, durchzuführen, indem Sie die folgenden Befehle mit Root-Rechten ausführen.

apt-get update
apt-get upgrade
apt-get dist-upgrade

Im nächsten Schritt sollten Sie den Namen Ihrer Maschine einrichten, indem Sie die Variable hostname durch einen eigenen beschreibenden Namen ersetzen, indem Sie den folgenden Befehl ausführen. Beachten Sie, dass Sie das System möglicherweise neu starten müssen, um den neuen Hostnamen entsprechend anzuwenden.

hostnamectl set-hostname hostname.yourdomain.com

Sie sollten auch die folgenden Dienstprogramme installieren, die sich später bei verschiedenen Problemen bei der Fehlersuche als nützlich erweisen werden.

apt install net-tools sudo wget curl bash-completion

Nachdem der Hostname des Rechners zugewiesen wurde, melden Sie sich erneut mit Root-Rechten an und installieren Sie den Apache HTTP-Server, der standardmäßig in ein Binärpaket vorkompiliert und von Debian 9-Repositories bereitgestellt wird.

apt install apache2

Als nächstes installieren Sie die neueste Version des PHP-Sprachinterpreters und alle erforderlichen Module, die für den Apache Webserver benötigt werden, um WordPress CMS einzusetzen, indem Sie den folgenden Befehl ausführen.

apt install libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc

Die letzte Komponente, die jetzt fehlt, damit der LAMP-Stapel vollständig ist, ist der MariaDB-Datenbankserver. Führen Sie den folgenden Befehl aus, um den MariaDB-Server zusammen mit dem PHP-Modul zu installieren, das für den Zugriff auf die Datenbank vom Apache HTTP-Server aus erforderlich ist.

apt install php7.0-mysql mariadb-server mariadb-client

Nachdem die MariaDB-Datenbank installiert wurde, starten Sie den Daemon und sichern Sie die Datenbank mit meinem laufenden mysql_secure_installationsskript, wie im folgenden Auszug dargestellt. Hauptsächlich antworten Sie mit Ja auf alle Fragen, die das Skript Ihnen stellt. Stellen Sie außerdem sicher, dass Sie ein sicheres Passwort für das Root-Konto wählen. Beachten Sie, dass das MySQL-Root-Konto nicht identisch ist mit dem Linux-Root-Konto. Die erste wird nur zur Verwaltung der MariaDB-Datenbank verwendet und die zweite ist das Superuser-Konto in jedem Linux-System. Diese Konten überschneiden sich in einem System nie.

systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Wir sind noch nicht fertig mit der Sicherung der MariaDB-Datenbank. Standardmäßig können Sie sich von localhost aus mit dem Root-Konto der Datenbank bei MariaDB anmelden, ohne nach einem Passwort gefragt zu werden. Um mögliche Sicherheitsprobleme zu vermeiden, melden Sie sich mit root-Benutzer in der Datenbank an und geben Sie die folgenden Befehle ein.

mysql -u root -p
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

Plugin vom MySQL-Root-Benutzer entfernen

Testen Sie nun die Datenbank, indem Sie versuchen, sich mit dem Root-Konto ohne Passwort anzumelden. Ihnen sollte der Zugriff auf die MariaDB-Datenbank verweigert werden.

Im nächsten Schritt werden wir TLS- und Umschreibmodule für den Apache-Webserver aktivieren und konfigurieren, die standardmäßig deaktiviert sind. Führen Sie die folgenden Befehle aus, um beide Module zu aktivieren.

a2enmod rewrite ssl
a2ensite default-ssl.conf

Öffnen Sie dann die Apache-Konfigurationsdateien für beide aktivierten Standorte und fügen Sie den folgenden Block unter der Datei DocumentRoot Anweisung, wie im folgenden Screenshot dargestellt.

nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

Fügen Sie in beiden Konfigurationsdateien den folgenden Codeblock hinzu:

    <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory>

Gewährt Zugriff auf das Verzeichnis /var/wwww/html und erlaubt Übersteuerungen.

Im Apache default-ssl.conf TLS-Konfigurationsdatei können Sie auch den folgenden Inhalt hinzufügen, falls nicht vorhanden, um die Sicherheit des Apache SSL-Protokolls zu verbessern. Diese Zeilen Code sollten häufige SSL-Schwachstellen beheben.

SSLProtocol all -SSLv2 -SSLv3
# Add SSL Cipher in one long line
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire
 
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

Setzt strenge SSL-Einstellungen in apache2

Wenn die im obigen Auszug veranschaulichten Zeilen bereits in der Apache SSL-Konfigurationsdatei vorhanden sind, müssen Sie sie so ändern, dass sie wie oben beschrieben aussehen. Um diese Einstellungen zu übernehmen, aktivieren Sie den Apache. Kopfzeilen Modul und starten Sie den Dienst neu, indem Sie die folgenden Befehle ausführen:

a2enmod headers
systemctl restart apache2.service

Für eine Produktionswebsite sollte es zwingend erforderlich sein, das Apache TLS-Modul zu aktivieren, da WordPress CMS überwiegend dynamische Inhalte über das PHP-Gateway generiert und auch den Authentifizierungsprozess für seine internen Benutzer übernimmt. Der Einsatz der TLS-Technologie garantiert, dass die übertragenen Informationen an beiden Enden verschlüsselt werden und die Verbindung gesichert ist. Ein Dritter oder ein Man-in-the-Middle kann den Datenverkehr abfangen, aber den Inhalt nicht entschlüsseln, da die Informationen nicht im Klartext geliefert werden.

Nachdem Sie alle oben genannten Änderungen vorgenommen haben, testen Sie die Apache-Konfiguration, um mögliche Syntaxfehler zu erkennen, und wenn alles in Ordnung ist, starten Sie die LAMP-Daemons neu, um alle bisher vorgenommenen Änderungen zu berücksichtigen und die Dienste systemweit zu aktivieren, indem Sie die folgenden Befehle ausführen.

apache2ctl -t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

Schließlich überprüfen Sie, ob Apache und MariaDB-Dienste Ports im Listening-Status geöffnet haben, indem Sie den netstat-Befehl ausgeben und die Ausgabe mit egrep filtern. Inzwischen sollte der Apache-Webserver die Ports 80 und 443 (entsprechend den Protokollen HTTP und https) generell freigelegt haben und MariaDB sollte nur für den localhost:3306-Socket bindend sein. Verwenden Sie das Flag -n gegen den Befehl netstat, um die Anzeige von Dienstnamen zu unterdrücken.

netstat -tlp| egrep 'http|mysql'

Überprüfen Sie, ob MariaDB gestartet ist.

Um sicherzustellen, dass Ihr Webserver über die Protokolle HTTP und HTTPS aus dem Internet erreichbar ist, öffnen Sie einen Browser und navigieren Sie zu Ihrem Domainnamen. Beim Surfen über das HTTPS-Protokoll wird im Browser ein Zertifikatsfehler angezeigt. Dies liegt daran, dass die Standard-TLS-Konfigurationsdatei des Apache so konfiguriert ist, dass sie selbstsignierte Zertifikate verwendet. Sie sollten den TLS-Fehler akzeptieren und wie unten dargestellt zur Standard-Webseite navigieren.

http://www.yourdomain.com

Apache2 Testseite

https://www.yourdomain.com

Apache 2 Testseite im SSL-Modus

Falls Sie Ihre Domain-Standard-Webseite nicht aus dem Internet besuchen können, sollten Sie zunächst überprüfen, ob einige Firewall-Regeln im System die Anfragen blockieren oder sicherstellen, dass die richtigen Ports auf dem Router in Ihr internes LAN weitergeleitet werden, falls der Server hinter einem NAT-ed Netzwerk sitzt. Möglicherweise möchten Sie auch die DNS-Einträge in Ihrem Domain-Registrar-Panel überprüfen und sicherstellen, dass sie auf Ihre WAN-IP verweisen und ob die Einträge mit der Verbreitung im Internet fertig sind.

Um zu testen, ob PHP auf der Serverseite wie erwartet funktioniert, erstellen Sie ein PHP. php in /var/www/html/ Systempfad, der der Standard-Webdokument-Rootpfad des Apache-Webservers ist, und gibt den folgenden Befehl aus und navigiert vom Browser zur folgenden URI, um das Ergebnis zu erhalten: http://www.yourdomain.com/info.php

echo '<?php phpinfo(); ?>' > /var/www/html/info.php

PHP Info Testseite

WordPress 5.0 installieren

Nachdem der LAMP-Stapel nun vollständig konfiguriert ist, ist die Installation von WordPress CMS relativ einfach. Melden Sie sich zunächst in der MariaDB-Datenbank an und erstellen Sie eine Installationsdatenbank für WordPress und einen Benutzer mit dem richtigen Passwort für die Installation und Verwaltung von WordPress CMS, indem Sie die folgenden Befehle ausführen. Gerne können Sie den Datenbanknamen und die Datenbank-Anmeldeinformationen entsprechend Ihren eigenen Anforderungen ersetzen.

mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

WordPress MySQL-Datenbank und Datenbankbenutzer erstellen

Als nächstes laden Sie den neuesten WordPress-Tarball von der offiziellen Website herunter, indem Sie das Dienstprogramm wget verwenden, und extrahieren Sie das komprimierte Archiv mit dem Dienstprogramm tar. Kopieren Sie die Installationsdateien in den Root-Pfad des Apache Webservers, indem Sie die folgenden Befehle ausführen. Stellen Sie außerdem sicher, dass Sie die standardmäßige index.html-Webseite entfernen.

cd /tmp
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

Laden Sie WordPress herunter und entpacken Sie es auf Ihrem Server.

Ändern Sie die Berechtigungen des Apache Webroot-Pfades wie unten beschrieben, um dem Webserver www-data group volle Schreibrechte für das Installationsverzeichnis zu gewähren. Diese Konfiguration ermöglicht es dem Apache-Webserver, Dateien und Verzeichnisse unter diesem spezifischen Systempfad zu erstellen oder zu ändern. Die wichtigsten wären das Upload-Verzeichnis und die .htaccess Datei, mit der die Apache-Funktionalität gesteuert und erweitert werden kann.

chmod -R 775 /var/www/html/
chgrp -R www-data /var/www/html/
ls -al /var/www/html

WordPress-Dateien

Nun, da alles in Ordnung ist, beginnen wir mit der Installation von WordPress. Der Installationsprozess wird über den Browser durchgeführt. Öffnen Sie einen Browser und besuchen Sie Ihre Domain über das HTTPS-Protokoll. Auf dem ersten Bildschirm der Installation klicken Sie auf die Schaltfläche Let’s go, um die Installation zu starten.

WordPress Web-Installer

Fügen Sie im nächsten Installationsbildschirm den Namen der Datenbank, die Anmeldedaten für den Datenbankzugriff und den Datenbankhost hinzu, den Sie zuvor für die WordPress-Installation erstellt haben, und klicken Sie zum Fortfahren auf die Schaltfläche Senden. Die Konfiguration der Datenbank wird gespeichert in /var/wwww/html/wp-config.php Sie können die Datei zu einem späteren Zeitpunkt für spezielle WordPress-Anwendungen manuell ändern.

Datenbankeinstellungen

Klicken Sie auf dem nächsten Bildschirm auf die Schaltfläche Run the install und geben Sie Ihren Website-Titel, die Anmeldedaten für den Webmaster und die E-Mail-Adresse ein. Ein sicheres Passwort sollte von den Installationsskripten automatisch generiert werden. Sie können dieses Passwort speichern oder Ihr eigenes, sicheres Passwort angeben. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche WordPress installieren, um den Installationsprozess abzuschließen.

Installation ausführen

WordPress Standortinformationen

Nachdem die Installation erfolgreich abgeschlossen wurde, melden Sie sich mit den während des Installationsprozesses erstellten Anmeldeinformationen im WordPress Dashboard an und starten Sie die Verwaltung Ihrer eigenen Website.

WordPress Installationserfolg

WordPress Admin-Login

Melden Sie sich im WordPress-Backend an.

WordPress Backend

WordPress Admin Dashboard.

Bearbeiten eines Beitrags im neuen WordPress Gutenberg Editor.

WordPress 5.0 Frontend mit neuem TwentyNineteen Design.

Herzlichen Glückwunsch! Sie haben die neueste Version von WordPress CMS erfolgreich auf dem LAMP-Softwarepaket in Debian 9 mit dem Codenamen Stretch installiert.

Das könnte Dich auch interessieren …