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

Installieren Sie WordPress 5 mit Apache auf Debian 9

Dieses Tutorial zeigt Ihnen, wie Sie die neueste Version von WordPress 5 auf einem LAMP-Stack in Debian 9 – Stretch installieren und konfigurieren. Wordpress ist ohne Zweifel eines der beliebtesten Open-Source-Content-Management-Systeme oder CMS, das heutzutage für das Internet-Publishing verwendet wird und mehr als 60 Millionen Websites weltweit unterstützt, ob kleine Blogging-Sites oder bemerkenswerte große Marken. Basierend auf der PHP- und MySQL-Engine wird Wordpress oft mit der LAMP-Sammlung in Verbindung gebracht, die entweder auf dedizierten Servern oder virtuellen privaten Servern oder auf gemeinsam genutzten Webhosting-Anbietern installiert ist. Das Akronym LAMP beschreibt eine Sammlung von Software, auch bekannt als Softwarebündel, die normalerweise aus Linux besteht Open-Source-Kernel, unabhängig von der gewählten Distribution, Apache HTTP-Server, der aufgrund seiner Stabilität, Flexibilität und Leistung einer der beliebtesten Open-Source-Webserver im Internet ist, PHP serverseitig interpretierte Programmiersprache und MariaDB relationales Datenbankverwaltungssystem (RDBMS), eine der beliebtesten Datenbanksoftware, die von der Open-Source-Community aus dem ursprünglichen MySQL gegabelt und gleichzeitig entwickelt wurde.

Anforderungen

  • Eine Neuinstallation des Betriebssystems Debian 9 auf einem Virtual Private Server oder einer virtuellen Maschine oder direkt auf einer dedizierten Bare-Metal-Maschine.
  • SSH-Fernzugriff im Falle eines VPS oder eines Remote-Servers oder direkter Konsolenzugriff
  • Mindestens eine statische IP-Adresse für eine auf dem Server konfigurierte Netzwerkschnittstelle
  • Falls die Webseite öffentlich im Internet verfügbar sein soll, benötigen Sie einen registrierten öffentlichen Domänennamen mit korrekt konfigurierten DNS-Einträgen. In dieser Anleitung verwenden wir example.com  als Beispieldomäne und eine statische IP-Adresse aus dem privaten Bereich, in NAT, hinter dem Hauptrouter. Auf die Domain kann über das Internet zugegriffen werden, indem die Apache-Ports 80 und 443 von der Router-Seite an das interne selbstgehostete LAN der virtuellen Maschine weitergeleitet werden.

Installieren Sie das LAMP-Softwarepaket

Das erste, was Sie tun sollten, bevor Sie mit der Installation aller LAMP-Komponenten beginnen, ist, sich beim Debian 9-Server anzumelden und ein aktuelles Verfahren für alle Systemkomponenten durchzuführen, wie z. B. Kernel-Upgrades, Paketaktualisierungen oder Sicherheitspatches, indem Sie die folgenden Befehlen mit Root-Rechten.

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

Im nächsten Schritt sollten Sie den Namen Ihres Computers einrichten, indem Sie die Hostname-Variable durch Ihren eigenen beschreibenden Namen ersetzen, indem Sie den folgenden Befehl ausführen. Beachten Sie, dass Sie möglicherweise das System 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 Problemlösungen als nützlich erweisen werden.

apt install net-tools sudo wget curl bash-completion

Nachdem der Rechner-Hostname angewendet 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

Installieren Sie als Nächstes die neueste Version des PHP-Sprachinterpreters und alle erforderlichen Module, die für den Apache-Webserver erforderlich sind, um Wordpress CMS bereitzustellen, 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-Stack 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 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 durch die laufende mysql_secure_installation Skript, wie im folgenden Auszug dargestellt. Antworten Sie hauptsächlich mit Ja Bei allen Fragen fordert Sie das Skript auf. 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 mit dem Linux-Root-Konto identisch ist. Der erste dient nur zur Verwaltung der MariaDB-Datenbank und der zweite ist das Superuser-Konto in jedem Linux-System. Diese Konten überschneiden sich niemals in einem System.

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 mit dem Datenbank-Root-Konto bei MariaDB anmelden, ohne nach einem Passwort gefragt zu werden. Um mögliche Sicherheitsprobleme zu vermeiden, melden Sie sich als Root-Benutzer bei der Datenbank an und führen Sie die folgenden Befehle aus.

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

 

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

Im nächsten Schritt aktivieren und konfigurieren wir TLS und schreiben Module für den Apache-Webserver um, 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 Sites und fügen Sie den folgenden Block unter DocumentRoot hinzu Direktive, 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>

In Apache default-ssl.conf TLS-Konfigurationsdatei können Sie auch den folgenden Inhalt hinzufügen, falls noch nicht vorhanden, um die Sicherheit des Apache SSL-Protokolls zu verbessern. Diese Codezeilen sollten allgemeine 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

Wenn die im obigen Auszug dargestellten Zeilen bereits in der Apache SSL-Konfigurationsdatei vorhanden sind, stellen Sie sicher, dass Sie sie so ändern, dass sie wie oben beschrieben aussehen. Um diese Einstellungen anzuwenden, aktivieren Sie die Apache Header 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 obligatorisch sein, das Apache TLS-Modul zu aktivieren, da WordPress CMS hauptsächlich dynamische Inhalte über das PHP-Gateway generiert und auch den Authentifizierungsprozess für seine internen Benutzer übernimmt. Die Verwendung der TLS-Technologie garantiert, dass die übertragenen Informationen auf beiden Seiten verschlüsselt 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 übermittelt werden.

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

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

Überprüfen Sie schließlich, ob Apache- und MariaDB-Dienste Ports im Listening-Zustand geöffnet haben, indem Sie netstat ausgeben Befehl und filtern Sie die Ausgabe mit egrep Inzwischen sollte der Apache-Webserver die Ports 80 und 443 (entsprechend den HTTP- und https-Protokollen) allgemein offengelegt haben und MariaDB sollte nur an localhost:3306 gebunden sein Steckdose. Verwenden Sie das -n Flag gegen netstat Befehl, um die Anzeige von Dienstnamen zu unterdrücken.

netstat -tlp| egrep 'http|mysql'

 

Um sicherzustellen, dass Ihr Webserver aus dem Internet über die Protokolle HTTP und HTTPS zugänglich 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 von Apache für die Verwendung von selbstsignierten Zertifikaten konfiguriert ist. Sie sollten den TLS-Fehler akzeptieren und weiter zur Standard-Webseite navigieren, wie unten dargestellt.

http://www.ihredomain.com 

https://www.ihredomain.com 

Falls Sie Ihre Domain-Standardwebseite nicht aus dem Internet aufrufen 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 sich der Server hinter einem befindet NAT-fähiges Netzwerk. 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 Verbreitung der Einträge im Internet abgeschlossen ist.

Um zu testen, ob PHP serverseitig wie erwartet funktioniert, erstellen Sie eine PHP php in /var/www/html/ Systempfad, der der standardmäßige Stammpfad für Webdokumente des Apache-Webservers ist, geben Sie den folgenden Befehl ein und navigieren Sie vom Browser zum folgenden URI, um das Ergebnis zu erhalten:http://www.yourdomain.com/info .php

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

 

Installieren Sie WordPress 5.0

Nachdem der LAMP-Stack nun vollständig konfiguriert ist, ist die Installation von Wordpress CMS relativ einfach. Melden Sie sich zunächst bei der MariaDB-Datenbank an und erstellen Sie eine Installationsdatenbank für Wordpress und einen Benutzer mit dem richtigen Passwort zum Installieren und Verwalten von Wordpress CMS, indem Sie die folgenden Befehle ausführen. Fühlen Sie sich frei, den Datenbanknamen und die Datenbankanmeldeinformationen entsprechend Ihren eigenen Anforderungen zu ersetzen.

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

 

Laden Sie als Nächstes mit wget den neuesten Wordpress-Tarball von der offiziellen Website herunter und extrahieren Sie das komprimierte Archiv mit tar Nützlichkeit. Kopieren Sie die Installationsdateien in den Dokumentstammpfad des Apache-Webservers, indem Sie die folgenden Befehle ausführen. Stellen Sie außerdem sicher, dass Sie die Standarddatei index.html entfernen Webseite.

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

 

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

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

Nun, da alles vorhanden ist, beginnen wir mit der Installation von Wordpress. Der Installationsvorgang wird vom Browser aus durchgeführt. Öffnen Sie einen Browser und besuchen Sie Ihre Domain über das HTTPS-Protokoll. Klicken Sie auf dem ersten Bildschirm der Installation auf Let’s go Schaltfläche, um die Installation zu starten.

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 auf Senden Schaltfläche, um fortzufahren. Die Konfiguration der Datenbank wird in /var/www/html/wp-config.php gespeichert Sie können die Datei zu einem späteren Zeitpunkt für spezielle Wordpress-Zwecke manuell ändern.

Klicken Sie auf dem nächsten Bildschirm auf Installation ausführen Schaltfläche und geben Sie Ihren Website-Titel, die Anmeldeinformationen des Website-Administrators und die E-Mail-Adresse ein. Ein starkes Passwort sollte automatisch von den Installationsskripten generiert werden. Sie können dieses Passwort speichern oder Ihr eigenes sicheres Passwort angeben. Wenn Sie fertig sind, klicken Sie auf Wordpress installieren Schaltfläche, um den Installationsvorgang abzuschließen.

Nachdem die Installation erfolgreich abgeschlossen wurde, melden Sie sich an mit den während des Installationsvorgangs erstellten Zugangsdaten zum Wordpress-Dashboard und beginnen Sie mit der Verwaltung Ihrer eigenen Website.

Melden Sie sich beim WordPress-Backend an.

Wordpress Admin Dashboard.

Bearbeiten eines Beitrags im neuen WordPress Gutenberg Editor.

Wordpress 5.0-Frontend mit neuem TwentyNineteen-Design.

Herzliche Glückwünsche! Sie haben die neueste Version von Wordpress CMS erfolgreich über dem LAMP-Softwarepaket in Debian 9, Codename Stretch, installiert.

Virtueller Computer-Image-Download dieses Tutorials

Dieses Tutorial ist als gebrauchsfertiges Image der virtuellen Maschine im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das Image der virtuellen Maschine verwendet die folgenden Anmeldedaten:

SSH-/Shell-Anmeldung

Benutzername:administrator
Passwort:howtoforge

Dieser Benutzer hat su-Rechte.

Benutzername: root
Passwort:howtoforge

WordPress-Login

Benutzername:admin
Passwort:howtoforge

MySQL-Anmeldung

Benutzername: root
Passwort:howtoforge

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/network/interfaces geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.


Debian
  1. Installieren Sie Apache Cassandra unter Debian 7

  2. Installieren Sie Cockpit unter Debian 9

  3. So installieren Sie WordPress mit Nginx unter Debian 10

  4. Installieren Sie phpMyAdmin auf Debian 11 mit Nginx

  5. Installieren Sie phpMyAdmin auf Debian 11 mit Apache

So installieren Sie Nginx mit PHP-FPM unter Debian 11

So installieren Sie Apache unter Debian 7

So installieren Sie Apache unter Debian 8.2

So installieren Sie WordPress auf einem Debian 8.2 Cloud-Server

So installieren Sie WordPress auf CentOS 7.1 mit Apache

So installieren Sie WordPress mit LAMP unter Debian 10