WordPress mit Ubuntu 22.04, Apache2, MariaDB und PHP 8.2-FPM installieren

Wenn Sie eine Veranstaltung planen WordPress bei Cloud Server, wird dieser Leitfaden hilfreich für Sie sein. LAMP steht für Linux, Apache, MariaDB und PHP Software, die zusammen als LAMP-Stack bekannt sind.

WordPress Apache2 Install

Vor- und Nachteile des Apache-Webservers gegenüber NGINX

  • Vorteile: Es unterstützt .htaccess-Datei, die häufig von vielen Page Caching & Optimierung verwendet wird. Dies ist eine gute Wahl für Nicht-Kodierer.
  • Nachteile: Es ist etwas weniger leistungsfähig als NGINX, aber das kann mit APO verwaltet werden. Für eine stark frequentierte Website, LEMP Stack ist die beste Wahl.

Befolgen Sie diese 3 Schritte und sehen Sie sich das Video an. Brauchen Sie Hilfe? Kontaktieren Sie mich 😊

  1. Einrichten von Cloudflare DNS
  2. Ubuntu Server beziehen
  3. Einsatz des LAMP-Stacks

Bevor Sie loslegen, hier noch ein kleiner Tipp. Verwenden Sie Search and Replace Extension zum Massenwechsel example.com zu Ihrer eigenen Domain in this web page.

Zeitsparender Tipp für Google Chrome-Nutzer.
search replace

Teil A: Cloudflare-Nameserver aktiv halten

Wir werden Folgendes verwenden Cloudflare DNS für das Erhalten Let’s Encrypt Wildcard SSL Zertifikat. Führen Sie diesen Schritt zuerst aus, um die Migration ohne Ausfallzeiten zu genießen.

Aktuelle Nameserver prüfen

Teil B: Einen Ubuntu Server 22.04 LTS Server einrichten

Ubuntu
Ubuntu logo

1. Registrieren Sie sich Vultr um $100 Gratis-Guthaben zu erhalten (14 Tage lang gültig)

Als jemand, der so viele Cloud-Server-Unternehmen ausprobiert hat, sagt meine Erfahrung, dass man mit Vultr nichts falsch machen kann. Diese Jungs sind echt und fürsorglich, wenn es um Support und Dienstleistungen geht.

vultr

⚡ Leistung

  • AMD EPYC™ der 3. Generation
  • NVME/SSD
  • Bis zu 4 GHz CPU
  • Bis zu 5Gbps Netzwerkgeschwindigkeit
  • Rechenzentrum in Amerika, Europe, Asia, Austraillia
  • IPV6 bereit

💡 Eigenschaften

  • Einsteigerfreundliches Dashboard
  • Mit einem Klick zum Snapshot
  • Automtatic Backup (kostenpflichtig)
  • Kostenlose Cloud-Firewall
  • DDoS-Schutz (kostenpflichtig)
  • 100% KVM-Virtualisierung

⚙ Unterstützung

  • PayPal/Karte
  • 24/7 Ticket-Unterstützung
  • Dokumentation

2. Einen neuen Server einrichten

Klicken Sie einfach auf den Plus-Button, um loszulegen

Deploy New Server

3. Server-Typ auswählen

Wählen Sie Cloud Compute für gemeinsam genutzte CPUs zu erschwinglichen Preisen.

Cloud Compute

Danach können Sie unter CPU & Speichertechnologie die Option AMD High Performance oder Intel High Frequency auswählen. Es hat die schnellste CPU und NVMe-Festplatte überhaupt. Wenn Sie weniger Geld zur Verfügung haben, wählen Sie den regulären Tarif mit Intel-CPU, bei dem Sie eine SSD-Festplatte erhalten.

CPU & Storage Tech

4. Wählen Sie eine Server Location

Vultr bietet Server auf allen vier Kontinenten an. Um die geringste Latenz und die beste Leistung zu erzielen, sollten Sie immer eine Region wählen, die Ihrem Publikum am nächsten liegt.

vultr server region

Wenn z. B. 99 % des Verkehrs aus dem Vereinigten Königreich kommen, wählen Sie die nächstgelegene Region – London.

Europe

  • Stockholm, Sweden
  • London, United Kingdom
  • Amsterdam, Netherlands
  • Frankfurt, Germany
  • Madrid, Spain
  • Paris, France
  • Warsaw, Poland

Asia

  • Mumbai, India
  • Delhi NCR, India
  • Bengaluru, India
  • Singapore, Singapore
  • Tokyo, Japan
  • Seoul, South Korea

America

  • Miami, United States
  • Atlanta, United States
  • Chicago, United States
  • Dallas, United States
  • Honolulu, United States
  • Los Angeles, United States
  • Mexico City, Mexico
  • New York (NJ), United States
  • Seattle, United States
  • Silicon Valley, United States
  • Toronto, Canada, São Paulo

Australlia

  • Sydney, Australlia
  • Melbourne, Australia

5. Wählen Sie das Server-Image > Betriebssystem > Ubuntu 22.04 LTS x64

ubuntu os

Long-Term-Support (LTS) ist ein Verfahren zur Verwaltung des Produktlebenszyklus, bei dem eine stabile Version von Computersoftware über einen längeren Zeitraum als die Standardversion gepflegt wird.

ubuntu releases 2

6. Wählen Sie eine Servergröße

server size

Der 6 $/Monat-Plan wäre ein guter Startpunkt für einen neuen Blog. Sie können jederzeit je nach Bedarf aufrüsten.

Tipp: Wenn Sie eine Migration durchführen, überprüfen Sie die Gesamtgröße der Installation in Site health info.

Site health info

7. Aktivieren Sie IPV6, Sicherung

vultr enable backup ipv6

8. Hinzufügen einer SSH key

Dies ist ein empfohlener, optionaler Schritt für die verbesserte Sicherheit.

Add SSH key
  • Klicken Sie auf Add New zum Hinzufügen einer neuen SSH key zur Einreichung Ihrer 🔒Öffentlicher Schlüssel.
  • Erzeugen Sie die Schlüssel mit der folgenden Methode entsprechend Ihrem Betriebssystem.
win os
  • Herunterladen PuTTy Anwendung.
  • Suche nach PuTTygen im Start Menü
  • Klicken Sie auf Generate Taste und hover mouse pointer
  • Kopieren Public key und liefern an Vultr
  • Eingabe key passphrase
  • Speichern Sie 🔑Private Key am sichersten Ort.
  • Dies kann für die Anmeldung verwendet werden bei SSH oder SFTP.
linux 2
  • Run: ssh-keygen -t rsa. Für mehr Sicherheit 4096-bit key, laufen: ssh-keygen -t rsa -b 4096
  • Drücken Sie die Eingabetaste, wenn Sie gefragt werden, wo Sie den Schlüssel speichern möchten (es wird der Standardspeicherort verwendet).
  • Eingabe einer passphrase für Ihre key.
  • Run cat ~/.ssh/id_rsa.pub – Dadurch erhalten Sie den Schlüssel im richtigen Format zum Einfügen in das Bedienfeld.
  • Stellen Sie sicher, dass Sie eine Sicherungskopie der ~/.ssh/id_rsa file. Diese kann nicht wiederhergestellt werden, wenn sie verloren geht.

Wählen Sie Ihr SSH key

Wenn Sie diese Schritte befolgen, wird Ihr public key zu Ihrem neuen Instance. Dann können Sie sich anmelden bei SSH mit Plain Text Passwort und SSH key beides.

select SSH public key

9. Link Web Firewall Regel zu Server Instance

Firewall
  1. Klicken Sie auf Manage und eine neue FirewallGruppe.
  2. Erlauben Sie TCP port 22 for SSH. 80 für HTTP und 443 HTTPS für IPV4 und IPV6 regelt beides.
  3. Verknüpfen Sie anschließend die Firewall Gruppe zu Ihrer Instance.
firewall status
Akzeptieren TCP connection von 22, 80, 443 nur
Link Firewall Group
Link firewall rule to new instance

10. Eingabe Hostname und Label-Klick Deploy Jetzt

server hostname label

In der Fortschrittsanzeige sehen Sie nun die Installation

Instance Installing

11. Weiter zu Neu Instance page

SeiteKopieren IP address, username und Kennwort. Ihr Standard port ist 22.

new instance info page

12. Passwort-Login deaktivieren

Aus Sicherheitsgründen, wird empfohlen, die Passwortauthentifizierung zu deaktivieren und nur die schlüsselbasierte Authentifizierung zuzulassen.

  1. Bearbeiten Sie die Konfigurationsdatei nano /etc/ssh/sshd_config
  2. finden. (CTRL + W) und Suche PasswordAuthentication
  3. Wert ändern von yes to no
  4. Zum Speichern tippen Sie, CTRL + O
  5. Neustart der SSH service Befehl verwenden sudo service ssh restart
disable password auth
Passwort-Authentifizierung deaktivieren

Vom nächsten Mal an, können Sie SSH via Taste nur wie im Video gezeigt.

Für Linux oder Mac verwenden Sie Terminal mit folgendem Befehl

ssh [email protected] -p 22 -i id_rsa

Schritt 13. UFW deaktivieren

Wenn Sie eine neue Instanz unter VULTR es kommt mit UFW (Unkomplizierte Firewall) aktiviert, die alle Ports mit Ausnahme des SSH port 22. Dies kann zu folgenden Ergebnissen führen ERR_CONNECTION_REFUSED Fehler im Browser. Um dies zu beheben, würde ich vorschlagen, die UFW deaktiviert.

ufw disable

Jetzt werde ich den ursprünglichen Prozess für die Bereitstellung von WordPress auf dem LAMP-Stack beschleunigen.

Teil C. Einsatz von WordPress auf einem LAMP-Stack

1. Update Repositories

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste

sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot

oder

wget -qO update https://dl.gulshankumar.net/update && chmod +x update

Verwenden Sie beim nächsten Mal immer den unten stehenden Kurzbefehl zum Aktualisieren.

./update

2. Installieren Sie MariaDB mit Sicherheit

Melden Sie sich erneut an und geben Sie folgenden Befehl ein

sudo apt install mariadb-server -y && sudo mysql_secure_installation

Beantworten Sie folgende Fragen

  • Enter current password for root (enter for none): Drücken Sie die Eingabetaste
  • Switch to unix_socket authentication [Y/n]: Geben Sie n ein und drücken Sie die Eingabetaste
  • Set root password? [Y/n]: Drücken Sie die Eingabetaste
  • New password: Geben Sie Ihr Passwort ein, Sie können Dashlane zum Generieren verwenden. Klicken Sie mit der rechten Maustaste auf Einfügen.
  • Re-enter new password: Geben Sie Ihr Passwort erneut ein.

Nach erfolgreicher Passwortvergabe sehen Sie

Password updated successfully!
Reloading privilege tables..
... Success!

Außerdem müssen Sie folgende Fragen beantworten.

Remove anonymous users? [Y/n]: Drücken Sie Y und geben Sie ein
Disallow root login remotely? [Y/n]: Drücken Sie Y und geben Sie ein
Remove test database and access to it? [Y/n]: Drücken Sie Y und geben Sie ein
Reload privilege tables now? [Y/n]: Drücken Sie Y und geben Sie ein

3. Erstellen Sie eine neue Database für WordPress

Anmeldung bei MySQL, Drücken Sie die Eingabetaste, wenn Sie nach dem Passwort gefragt werden.

mysql -u root -p

Erstellen Sie eine neue Database, und Grant Privileges um seinen Benutzer mit Passwort zu verwenden. Dies ist der Ort, an dem WordPressalle speichern post, pages, themes, plugin, usw. Informationen.

create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;

Wo Ihr …
database is wordpress
username is gulshan
password is 5pY8CKJxDRJEGQNkX7

Tipp: Erwägen Sie die Verwendung eindeutiger Anmeldedaten

4. Installieren Sie PHP 8.2, Apache2 und setzen Permission

Derzeit ist PHP 8.2 die letzte stabile Version. Wenn Sie eine andere PHP-Version benötigen, müssen Sie in allen nachstehenden Befehlen die gleiche Version angeben.

sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/

zwicken PHP Konfiguration

Am ausgefallensten theme und plugin erfordert High-End PHP configuration zum Laufen. Deshalb sollten wir diese Änderungen vornehmen.

sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart

5. Installieren Sie Wildcard Let’s Encrypt SSL Certificate

Erstellen einer cloudflare.ini file inside /root/.secrets/ Verzeichnis.

mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini

Fügen Sie den folgenden Code ein und speichern Sie ihn mit CTRL+O und beenden mit CTRL+X

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"

Finden Sie Ihre Cloudflare-E-Mail und Global API key unter „My Profile“ > API Tokens > Global API Key

chmod 0400 /root/.secrets/cloudflare.ini

Installieren Sie Certbot und DNS Authenticator je nach OS und HTTP web server

apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare

Siehe Wildcard SSL Certificate

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01

Automatische Erneuerung einstellen mit Cron Job

  • Typ crontab -e
  • Typ 1 for nano editor
  • Geben Sie den folgenden Befehl ein und speichern Sie
0 0 * * *  /etc/init.d/apache2 reload >/dev/null 2>&1

Erneuerung des Tests

certbot renew --dry-run

Aktivieren Sie diese nützlichen Module

a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2

6. Erstellen Sie ein App-Verzeichnis für jede WordPress-Website, die Sie installieren möchten

mkdir -p /var/www/example.com/public

Dies wird Ihr Document Root Pfad in Ihrer Apache Konfigurationsdatei sein. Der Grund, warum ich example.com innerhalb von www angelegt habe, ist, dass ich jede Website übersichtlich halten möchte. Zweitens habe ich auch das Verzeichnis public angelegt, um alle WordPress-Kerndateien dort zu speichern, aber wp-config.php eine Ebene höher (/var/www/example.com/).

7. Apache2-Konfiguration erstellen

Dies ist wichtig, wenn Sie Ihre Domäne konfigurieren müssen, wie Apache2 sollte Ihr HTTP requests.

Löschen der Konfigurationsdateien der Standard-Serverblöcke von Apache2

rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars

Jetzt, Einen neuen Serverblock erstellen Konfigurationsdateien. YSie müssen diesen Schritt jedes Mal durchführen, wenn Sie ein neues WordPress auf demselben Server hinzufügen möchten.

Bitte ersetzen example.com mit eigener Domain und vergessen Sie nicht, den Namen der Konfigurationsdatei mit .conf Erweiterung. Sonst wird es nicht funktionieren.

cd /etc/apache2/sites-available/
nano example.com.conf
  1. Ersetzen Sie example.com mit eigener Domain
  2. Geben Sie den folgenden Code ein und drücken Sie ctrl+o zu speichern und ctrl+x zum Ausgang.
##############################################################
#                                                               
# HINWEISE: Bitte suchen und ersetzen Sie example.com durch Ihre eigene Domäne.
#                                                                
##############################################################


# Wir werden HTTPS non-www erzwingen.
# Wenn Sie HTTPS www wollen, lassen Sie https://www.example.com/ in der letzten Zeile stehen.
# Sonst kann es zu einem Redirect-Loop-Problem kommen.

<VirtualHost *:80>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Protocols h2 h2c http/1.1
   DirectoryIndex index.php index.html
    
   # Empfohlen für Cloudflare-Nutzer
   # RemoteIPHeader X-Forwarded-For
   
   # Document Root Path (Achten Sie auf diesen Pfad, um 404 zu vermeiden)
   DocumentRoot /var/www/example.com/public
   
   # Der Pfad der Protokolle lautet /var/log/apache2/example.com-access.log
   ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
   CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
   
   # Let's Encrypt SSL
   SSLEngine On
   SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
   
   # Verwendung einer .htaccess-Datei zum Überschreiben der Konfiguration zulassen
   <Directory /var/www/example.com/public>
     Options FollowSymLinks
     AllowOverride All
     Require all granted
   </Directory>
   
   # PHP-Ausführung im Uploads-Verzeichnis blockieren
   <Directory /var/www/example.com/public/wp-content/uploads>
    <Files *.php>
      deny from all
    </Files>
   </Directory>
   
   # wp-config.php schützen
   <files wp-config.php>
      order allow,deny
      deny from all
   </files>

  # HTTP Auth für zusätzliche Sicherheit
  # Wenn Sie HTTP Auth für die WordPress Login-Seite wünschen, sollten Sie diesen Code-Block auskommentieren.
  # Wenn Sie das tun, müssen Sie auch die .htpasswd-Datei erzeugen.
  # <Files wp-login.php>
  #  AuthName "Admins Only"
  #    AuthUserFile /var/www/.htpasswd
  #   AuthType basic
  #    require user gulshan
  #   <RequireAny>
  #      Require ip 127.0.0.1
  #       Require valid-user
  #   </RequireAny>
  # </Files>
   
   # Blockieren Sie XML-RPC, um DDoS-Angriffe zu verhindern.
   <Files xmlrpc.php>
      Order Deny,Allow
      Deny from all
   </Files>
   
   # PHP-Ausführung handhaben. Behalten Sie die installierte Version bei.
   <FilesMatch ".php$">
      SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
   </FilesMatch>
</VirtualHost>

To save, press CTRL+O and Enter key. Then, exit nano editor using command CTRL+X.

Zum Aktivieren Server block, Geben Sie den Befehl

Bevor Sie den folgenden Befehl ausführen, bitte ersetzen example.com zum eigenen Bereich.

a2ensite example.com.conf

Testkonfiguration (optional)

apache2 -t

Neustart und Aktualisierung

service apache2 restart && service php8.2-fpm restart && service mysql restart && apt-get update && apt upgrade -y

8. WordPress-Dateien installieren

WordPress-Dateien herunterladen in /var/www/example.com/public/ und setzen Sie die Berechtigung.

cd /var/www/example.com/public/ && wget https://de.wordpress.org/latest-de_DE.tar.gz && tar -xvzf latest-de_DE.tar.gz && mv -v wordpress/* /var/www/example.com/public/ && rm -rf latest-de_DE.tar.gz wordpress && chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

Um die Erlaubnis in Zukunft zu aktualisieren, Verwenden Sie den folgenden Befehl. Damit wird die www-data für alles im Inneren /var/www/ Verzeichnis

chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

9. DNS aktualisieren

Wenn Sie WordPress lokal hosten, den Proxy umgehen oder eine Migration ohne Ausfallzeiten durchführen möchten, ist dieser Schritt nützlich.Im Allgemeinen bevorzuge ich im Falle von Static WordPress Entwicklungsgebiet. 😉

  • Es gibt zwei Möglichkeiten, DNS anzugeben. Wenn Sie eine Website zu Vultr migrieren und zunächst lokal testen möchten, bearbeiten Sie Ihre Hosts-Datei und geben Sie den Punkt dort ein.

Für Windows

  • Gehen Sie zu den Eigenschaften von C:\Windows\System32\drivers\etc\hosts
  • Ändern Sie „Security“ Erlaubnis zur vollen Kontrolle für Ihren aktuellen Benutzernamen
  • Nun können Sie die hosts-Datei unter Ihrem Systembenutzer frei bearbeiten und speichern.
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com

Ein Beispiel: So sollte es aussehen

Für Mac oder Linux

Sie können bearbeiten hosts Datei mit dieser command unter sudo Benutzer.

sudo nano /etc/hosts

DNS-Aktualisierung mit Cloudflare

  • Wenn alles perfekt aussieht und Sie Ihre Website in Betrieb nehmen möchten, melden Sie sich bei Cloudflare DNS an und aktualisieren Sie die neue IP.
Record TypeNameValue
A@IPV4
AAAA@IPV6
CNAMEwwwexample.com

where @ denotes root domain example.com

9. Besuchen Sie Ihren Domainnamen, um WordPress einzurichten

Wenn Sie Folgendes behalten möchten non-www version domain für Ihr WordPress, dann besuchen Sie non-www version else www.

https://example.com
  • Geben Sie die Anmeldedaten für die Datenbank an, um mit der WordPress-Einrichtung zu beginnen.
  • Installation ausführen
  • Füllen Sie die grundlegenden Angaben zu Ihrer neuen Website aus und installieren Sie WordPress.
  • Anmeldung bei WordPress

Andere notwendige Dinge

  • Erhöhen Sie den Swap-Speicher, um mit plötzlicher Last fertig zu werden
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • Stellen Sie sicher, dass Sie ein Seiten-Caching-Plugin verwenden, um die Serverlast unter Kontrolle zu halten. Da es sich um einen LAMP-Stack handelt, würde ich empfehlen WP Fastest Cache.
  • Bewahren Sie immer ein Backup auf.
  • Verwenden Sie SMTP plugin Dienste für den Versand ausgehender WordPress-E-Mails, da Sie sonst keinen Link zum Zurücksetzen des Passworts und keine Nachrichten über das Kontaktformular 7 erhalten können.

Endlich ist die WordPress-Installation abgeschlossen.

Ich bin Ihnen sehr dankbar, dass Sie sich die Zeit genommen haben, diesen Artikel zu lesen. Wir sehen uns im nächsten Tutorial!

Schreibe einen Kommentar