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

Installieren Sie WordPress auf Ubuntu 20.04 mit Apache, MariaDB, PHP7.4 (LAMP)

Dieses Tutorial zeigt Ihnen, wie Sie WordPress auf Ubuntu 20.04 mit Apache, MariaDB und PHP7.4 (LAMP Stack) installieren. WordPress ist das beliebteste CMS (Content Management System) der Welt. Es wird geschätzt, dass mehr als ein Drittel der Websites heute von WordPress betrieben werden. PHP7.4 wurde in das Ubuntu 20.04-Repository aufgenommen und WordPress läuft perfekt damit.

Voraussetzung

Um diesem Tutorial zu folgen, benötigen Sie einen Ubuntu 20.04-Server mit mindestens 1 GB RAM. Wenn Sie nach einem VPS (Virtual Private Server) suchen, können Sie auf diesen speziellen Link klicken, um 50 $ kostenloses Guthaben auf DigitalOcean zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, können Sie auf diesen speziellen Link klicken, um 50 $ kostenloses Guthaben auf Vultr zu erhalten (nur für neue Benutzer).

Sie benötigen auch einen Domänennamen, damit Besucher einen Domänennamen in die Adressleiste des Webbrowsers eingeben können, um auf Ihre Website zuzugreifen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos bieten.

Dieses Tutorial geht davon aus, dass Sie bereits einen LAMP-Stack auf Ubuntu 20.04 eingerichtet haben. Wenn nicht, sehen Sie sich bitte das folgende Tutorial an.

  • So installieren Sie LAMP Stack (Apache, MariaDB, PHP7.4) auf Ubuntu 20.04

Kehren Sie nach Abschluss der LAMP-Installation hierher zurück und lesen Sie weiter.

Schritt 1:WordPress herunterladen

Verbinden Sie sich per SSH mit Ihrem Ubuntu 20.04-Server und aktualisieren Sie vorhandene Software.

sudo apt update && sudo apt upgrade

Gehen Sie als Nächstes zur Download-Seite von wordpress.org und laden Sie das ZIP-Archiv herunter. Sie können den direkten Download-Link abrufen, indem Sie mit der rechten Maustaste auf die Download-Schaltfläche klicken und copy link location auswählen .

Geben Sie dann in der Befehlszeile wget ein gefolgt vom direkten Download-Link zum Herunterladen von WordPress auf Ihren Ubuntu 20.04-Server.

wget https://wordpress.org/latest.zip

Als nächstes extrahieren Sie das Archiv nach /var/www/ Verzeichnis mit unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip latest.zip -d /var/www/

Das -d Option gibt das Zielverzeichnis an. WordPress-Webdateien werden nach /var/www/wordpress extrahiert . Wir können dieses Verzeichnis wie unten umbenennen, sodass wir jedes Verzeichnis leicht identifizieren können. Ersetzen Sie example.com mit Ihrem echten Domainnamen.

sudo mv /var/www/wordpress /var/www/example.com

Schritt 2:Erstellen Sie eine Datenbank und einen Benutzer für die WordPress-Site

Melden Sie sich mit dem folgenden Befehl als root bei der MariaDB-Shell an.

sudo mariadb -u root

oder

sudo mysql -u root

Sobald Sie angemeldet sind, erstellen Sie mit dem folgenden Befehl eine Datenbank für WordPress. Ich habe es wordpress genannt , aber Sie können einen beliebigen Namen verwenden, z. B. den Namen Ihrer Website. (Lassen Sie das Semikolon nicht aus.)

create database wordpress;

Geben Sie dann den folgenden Befehl ein, um einen Datenbankbenutzer für WordPress zu erstellen. Dieser Befehl gewährt dem Benutzer auch alle Privilegien der WordPress-Datenbank. Ersetzen Sie wpuser und your-password mit Ihrem bevorzugten Benutzernamen und Passwort.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Leeren Sie die Berechtigungstabelle, damit die Änderungen wirksam werden, und beenden Sie dann die MariaDB-Shell.

flush privileges;

exit;

Schritt 3:WordPress konfigurieren

Gehen Sie zu Ihrem WordPress-Verzeichnis.

cd /var/www/example.com/

Kopieren Sie die Beispielkonfigurationsdatei und benennen Sie sie in wp-config.php um .

sudo cp wp-config-sample.php wp-config.php

Bearbeiten Sie nun die neue Konfigurationsdatei mit einem Befehlszeilen-Texteditor wie Nano.

sudo nano wp-config.php

Suchen Sie die folgenden Zeilen und ersetzen Sie die roten Texte durch den Datenbanknamen, den Benutzernamen und das Passwort, die Sie im vorherigen Schritt erstellt haben.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

Speichern und schließen Sie die Datei. Um die Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O , und drücken Sie dann Enter bestätigen. Drücken Sie als Nächstes Ctrl+X zum Beenden.

Wir müssen auch den Apache-Benutzer (www-data ) als Besitzer des WordPress-Site-Verzeichnisses mit dem folgenden Befehl.

sudo chown www-data:www-data /var/www/example.com/ -R

Schritt 4:Erstellen Sie eine Apache Virtual Host-Datei für WordPress

Führen Sie den folgenden Befehl aus, um eine virtuelle Hostdatei für Ihre WordPress-Site in /etc/apache2/sites-available/ zu erstellen Verzeichnis.

sudo nano /etc/apache2/sites-available/example.com.conf

Fügen Sie die folgenden Texte in die Datei ein. Ersetzen Sie die roten Texte durch Ihren eigenen Domainnamen. Vergessen Sie nicht, A-Einträge für Ihren Domainnamen in Ihrem DNS-Manager zu erstellen.

<VirtualHost *:80>       
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        #This enables .htaccess file, which is needed for WordPress Permalink to work. 
        <Directory "/var/www/example.com">
             AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

Speichern und schließen Sie die Datei. Testen Sie dann die Konfigurationen.

sudo apache2ctl configtest

Wenn Sie „Syntax OK“ sehen, aktivieren Sie diesen virtuellen Host.

sudo a2ensite example.com.conf

Und laden Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl reload apache2

Richten Sie einen korrekten A-Eintrag für Ihren Domainnamen ein und geben Sie dann Ihren Domainnamen in die Adressleiste des Browsers ein.

example.com

oder

example.com/wp-admin/install.php

Sie sehen den WordPress-Installationsassistenten. Wählen Sie eine Sprache aus.

Wenn der Installationsassistent nicht angezeigt wird, müssen Sie wahrscheinlich einige PHP7-Erweiterungen installieren.

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4-curl php7.4-zip

Laden Sie dann Apache neu und der Assistent sollte jetzt angezeigt werden.

sudo systemctl reload apache2

Bevor Sie Ihre vertraulichen Informationen in den Einrichtungsassistenten eingeben, wird empfohlen, HTTPS zu aktivieren, um das Hijacking von Datenverkehr zu verhindern.

Schritt 5:HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.

sudo apt install certbot python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

Wo

  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --uir :Fügen Sie den Header „Content-Security-Policy:upgrade-insecure-requests“ zu jeder HTTP-Antwort hinzu.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.
  • --email :E-Mail, die für die Registrierung und den Wiederherstellungskontakt verwendet wird.
  • -d Flag folgt eine durch Kommas getrennte Liste von Domänennamen. Sie können bis zu 100 Domainnamen hinzufügen.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Wenn Sie jetzt den WordPress-Einrichtungsassistenten neu laden, können Sie sehen, dass HTTP automatisch auf eine HTTPS-Verbindung umgeleitet wird.

Schritt 6:Beenden Sie die Installation mit dem Einrichtungsassistenten

Erstellen Sie ein Administratorkonto und klicken Sie auf WordPress installieren Schaltfläche.

Und jetzt ist Ihre neue WordPress-Site installiert.

Umleitung von WWW auf Nicht-WWW (oder umgekehrt)

Wir haben die Umleitung von HTTP auf HTTPS bereits aktiviert, was noch zu tun ist, ist die Umleitung von www auf nicht-www oder umgekehrt. Wenn Sie WordPress verwenden, dann ist es sehr einfach. Gehen Sie einfach zum WordPress Dashboard> Einstellungen> Allgemeines und legen Sie Ihre bevorzugte Version (www oder nicht-www) in der WordPress-Adresse fest und Site-Adresse . Stellen Sie sicher, dass Sie https:// angeben Präfix.

Behebung der doppelten 301-Weiterleitung

Wir legen die bevorzugte Domain-Version in der WordPress-Adresse fest und Site-Adresse Felder. Es gibt jedoch ein doppeltes 301-Umleitungsproblem. Zuerst leitet der Apache-Server HTTP zu HTTPS um, dann leitet WordPress zur www- oder Nicht-www-Domain weiter.

Einige mögen argumentieren, dass Sie SEO-Linkjuice verlieren können, wenn Sie eine doppelte 301-Weiterleitung durchführen. Wenn Sie sich darüber Sorgen machen, können Sie die folgende Methode verwenden, um alle Domain-Versionen direkt zum endgültigen Ziel zu bringen, sodass es eine einzige 301-Weiterleitung gibt.

Bearbeiten Sie Ihre virtuelle Hostdatei. (Nicht der virtuelle SSL-Host)

sudo nano /etc/apache2/sites-enabled/example.com.conf

Der CertBot-Client hat der Datei die folgenden Zeilen hinzugefügt, um HTTP auf HTTPS umzuleiten.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Um auf www- oder Nicht-www-Domänen umzuleiten, müssen Sie die letzte Zeile ändern. Ersetzen Sie %{SERVER_NAME} mit Ihrer bevorzugten Domain-Version wie unten. (www-Domäne)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Wenn Sie eine Nicht-www-Domain bevorzugen, ändern Sie sie wie folgt.

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Anschließend speichern und schließen Sie die Datei. Außerdem müssen wir den virtuellen SSL-Host bearbeiten.

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Fügen Sie die folgenden Zeilen über dem schließenden -Tag hinzu, um Nicht-www auf die www-Domain umzuleiten.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Wenn Sie www zu einer Nicht-www-Domain umleiten möchten, fügen Sie stattdessen die folgenden Zeilen hinzu.

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Speichern und schließen Sie die Datei. Laden Sie den Apache-Dienst neu, damit die Änderungen wirksam werden.

sudo systemctl reload apache2

Um es deutlicher zu machen, unten ist ein Screenshot meiner virtuellen Apache-Hostdatei und meiner virtuellen SSL-Hostdatei zum Umleiten von Nicht-www- zu www-Domains.

Apache Virtual Host-Datei

Virtuelle Apache-SSL-Hostdatei

Stellen Sie sicher, dass Sie Ihre bevorzugte Domain-Version in WoredPress-Adresse festlegen und Site-Adresse bevor Sie virtuelle Apache-Hostdateien bearbeiten. Wenn die WordPress-Einstellungen der Apache-Konfiguration widersprechen, landet Ihre Website in einer Umleitungsschleife.

Automatische Verlängerung des TLS-Zertifikats

Um das Let’s Encrypt-Zertifikat automatisch zu erneuern, bearbeiten Sie einfach die Crontab-Datei des Root-Benutzers.

sudo crontab -e

Fügen Sie dann unten die folgende Zeile hinzu.

@daily certbot renew --quiet && systemctl reload apache2

Apache muss neu geladen werden, damit er Clients das neue Zertifikat präsentieren kann.

Erhöhen Sie die Größenbeschränkung für Upload-Dateien

Wenn Sie das Apache PHP-Modul zum Ausführen von PHP-Skripten verwenden, gibt es keine Größenbeschränkung für Upload-Dateien. Wenn Sie PHP-FPM zum Ausführen von PHP-Skripten verwenden, ändern Sie die Dateigrößenbeschränkung, damit Sie große Dateien in die WordPress-Medienbibliothek hochladen können. Die standardmäßige maximale Dateigröße für das Hochladen in PHP-FPM beträgt 2 MB. Um die Upload-Größenbeschränkung zu erhöhen, bearbeiten Sie die PHP-Konfigurationsdatei.

sudo nano /etc/php/7.4/fpm/php.ini

Suchen Sie die folgende Zeile (Zeile 846).

upload_max_filesize = 2M

Ändern Sie den Wert wie folgt:

upload_max_filesize = 20M

Suchen Sie dann die folgende Zeile (Zeile 694).

post_max_size = 8M

Ändern Sie die maximale Größe von POST-Daten, die PHP akzeptiert.

post_max_size = 20M

Speichern und schließen Sie die Datei. Alternativ können Sie die folgenden beiden Befehle ausführen, um den Wert zu ändern, ohne die Datei manuell zu öffnen.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini

Starten Sie dann PHP-FPM neu.

sudo systemctl restart php7.4-fpm

So senden Sie E-Mails in WordPress

Ihre WordPress-Site muss E-Mails wie E-Mails zur Kontoregistrierung, E-Mails zum Zurücksetzen von Passwörtern, E-Mails mit Kommentarbenachrichtigungen usw. senden. Anstatt teure Lösungen von Drittanbietern wie Gsuite zu verwenden, um professionelle E-Mail-Adressen für Ihre Website zu erstellen, können Sie diesem iRedMail-Tutorial folgen, um es einzurichten Richten Sie Ihren eigenen Mailserver mit Ihrem eigenen Domainnamen ein, damit Sie unbegrenzt viele Postfächer haben und unbegrenzt E-Mails versenden können, ohne die Bank zu sprengen.

Beachten Sie, dass es eine gute Praxis ist, den Mailserver und WordPress auf zwei verschiedenen virtuellen privaten Servern zu installieren, da Sie nicht möchten, dass der Mailserver die Geschwindigkeit Ihrer WordPress-Site verlangsamt, und der Mailserver die IP-Adresse Ihrer WordPress-Site verliert, wenn dies der Fall ist befinden sich auf demselben virtuellen privaten Server, was bedeutet, dass Hacker jedes von Ihnen verwendete CDN (Content Delivery Network) umgehen und DDoS-Angriffe direkt auf Ihrem Ursprungsserver starten können.

Sobald Ihr Mailserver eingerichtet ist und läuft, können Sie ein SMTP-Plugin in WordPress installieren, damit es sich mit Ihrem Mailserver verbinden und E-Mails senden kann. Gehen Sie zu Ihrem WordPress-Dashboard -> Plugins , klicken Sie auf Neu hinzufügen um ein neues Plugin zu installieren.

Geben Sie dann WP Mail SMTP ein im Suchfeld. Installieren und aktivieren Sie WP Mail SMTP by WPForms Plugin.

Laden Sie die WordPress-Dashboard-Webseite neu, Sie werden WP Mail SMTP sehen in der linken Menüleiste. Klicken Sie darauf und wählen Sie Einstellungen .

Scrollen Sie dann nach unten zum Abschnitt Mailer. Standardmäßig ist der PHP-Mailer ausgewählt. Wir müssen es zu Anderes SMTP ändern .

Scrollen Sie nach unten und Sie müssen die SMTP-Einstellungen eingeben.

  • Geben Sie den Hostnamen Ihres Mailservers ein.
  • Wählen Sie TLS als Verschlüsselung aus.
  • Verwenden Sie Port 587.
  • Authentifizierung aktivieren.
  • Geben Sie eine E-Mail-Adresse Ihrer Domain und das Passwort ein.

Nachdem Sie die Einstellungen gespeichert haben, können Sie den E-Mail-Versand testen, indem Sie sich vom WordPress-Dashboard abmelden und auf Passwort vergessen klicken Link zum Senden einer E-Mail zum Zurücksetzen des Passworts.


Ubuntu
  1. So installieren Sie WordPress mit Apache unter Ubuntu 18.04

  2. So installieren Sie Joomla mit Apache unter Ubuntu 18.04

  3. So installieren Sie mehrere WordPress mit Nginx unter Ubuntu 18.04

  4. Installieren Sie WordPress mit LAMP Stack auf Ubuntu 20.04

  5. So installieren Sie phpBB mit Apache unter Ubuntu 20.04

Installieren Sie WordPress auf Ubuntu 20.04 mit Nginx, MariaDB, PHP7.4 (LEMP)

So installieren Sie WordPress 4.7 auf Ubuntu 16.04 mit Apache, MariaDB, PHP7

Installieren Sie WordPress auf Ubuntu 18.04 mit Nginx, MariaDB, PHP7.2 (LEMP)

So installieren Sie LAMP Stack (Apache, MariaDB, PHP7.1) unter Ubuntu 17.10

So installieren Sie den LAMP-Stack unter Ubuntu 20.04

So installieren Sie WordPress mit LAMP unter Ubuntu 20.04