So installierst du WordPress mit Nginx und Let’s Encrypt SSL auf Ubuntu 22.04

WordPress ist ein kostenloses und quelloffenes Content Management System, das hauptsächlich für die Veröffentlichung von Blogs im Internet verwendet wird. Es ist für alle gedacht, die keine Ahnung von Code haben. WordPress macht es einfach, Websites und Blogs zu erstellen und zu pflegen. Aufgrund seiner Beliebtheit wird heute mehr als ein Drittel aller Websites mit WordPress betrieben. Es ist in PHP geschrieben und verwendet MariaDB und MySQL als Datenbank-Backend.

In diesem Lernprogramm zeigen wir dir, wie du WordPress mit Nginx und Let’s Encrypt SSL auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Nginx, MariaDB und PHP installieren

Bevor du beginnst, muss der LEMP-Server auf deinem Server installiert sein. Wenn er nicht installiert ist, kannst du ihn mit dem folgenden Befehl installieren:

apt-get install nginx mariadb-server php php-fpm php-curl php-mysql php-gd php-mbstring php-xml php-imagick php-zip php-xmlrpc -y

Sobald der LEMP-Server installiert ist, überprüfst du die PHP-Version mit folgendem Befehl:

php -v

Du erhältst die PHP-Version in der folgenden Ausgabe:

PHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Als Nächstes bearbeitest du die PHP-Konfigurationsdatei und änderst einige Standardeinstellungen:

nano /etc/php/8.1/fpm/php.ini

Ändere die folgenden Zeilen:

cgi.fix_pathinfo=0
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 512M
max_execution_time = 120

Speichere und schließe die Datei, wenn du fertig bist.

Eine Datenbank für WordPress erstellen

WordPress verwendet eine Datenbank, um seine Inhalte zu speichern. Deshalb musst du eine Datenbank und einen Benutzer für WordPress erstellen.

Melde dich zunächst mit folgendem Befehl in der MariaDB-Shell an:

mysql

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'securepasssword';

Als Nächstes erteilst du der WordPress-Datenbank mit folgendem Befehl alle Berechtigungen:

MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wpuser'@'localhost';

Als Nächstes löschst du die Berechtigungen und verlässt MariaDB mit dem folgenden Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

WordPress auf Ubuntu 22.04 installieren

Navigiere zunächst zum Nginx-Web-Root-Verzeichnis und lade die neueste Version von WordPress mit dem folgenden Befehl herunter:

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Sobald WordPress heruntergeladen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

tar -zxvf latest.tar.gz

Als Nächstes benennst du die WordPress-Beispielkonfigurationsdatei um.

mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Als Nächstes bearbeitest du die WordPress-Konfigurationsdatei und definierst deine Datenbankeinstellungen:

nano /var/www/html/wordpress/wp-config.php

Lege deine Datenbankeinstellungen wie unten gezeigt fest:

define( 'DB_NAME', 'wpdb' );

/** Database username */
define( 'DB_USER', 'wpuser' );

/** Database password */
define( 'DB_PASSWORD', 'securepasssword' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

Aus Sicherheitsgründen musst du auch die Sicherheitsschlüssel in deiner wp-config-Datei aktualisieren. Gehe zuersthierhin, um sie zu generieren. Füge sie dann wie unten gezeigt hinzu:

define('AUTH_KEY',         'Y$I,-gafVeR>Z-8qy&jQ62L}{R)e|lK/#RBh.Y#f+p-P*.8,,hP-iX[q3*tVP-fu');
define('SECURE_AUTH_KEY',  'D)k6o`D G%<()-zXP5{T{v2)Zgo-c+8T-Un=+R3%n/X2=MLDb5$O]UHA%gK| .WR');
define('LOGGED_IN_KEY',    'eL|5#`ul|;MrKm#q$KVl/ky(i}Jc;xrH(Eb|Hwzb/?-.RLSUSX2X[4HD:U:UOP:Y');
define('NONCE_KEY',        ']azQ+9f^#~l*r>uPMH5H>ck:?az4o[)*Txo:+MGjE5f&0kag3O9m85g3~VJ6YVWE');
define('AUTH_SALT',        'fAM5&`m4X+{+wSsF.!}-/8@Ce~~u%>}la1bCC,@#+R*t]uYf?[hph/>!Bw>v#oaQ');
define('SECURE_AUTH_SALT', '}|Z&dj_tFV2T$7y(O#O|bwwQ$sH6t!-zdE.MlOHLZ>4WDqG:_Qzn#Allm-UO1#7P');
define('LOGGED_IN_SALT',   'b9Uf~**E_xt@{KWknsAL^9D7Ix3CO.+PpFF~btd)-pG~pXPQ,[c&WRE-NgLG9~)|');
define('NONCE_SALT',       '}mTUi&.#i+YJT-TSrbIwqWO<]ut3K%CS~7g.} *NztVlgZDr`?>wxJ+_VW-D_zif');

Speichere und schließe die Datei, wenn du fertig bist. Als Nächstes musst du dem WordPress-Verzeichnis die richtigen Berechtigungen und Eigentumsrechte zuweisen:

chown -R www-data:www-data /var/www/html/wordpress
chmod -R 755 /var/www/html/wordpress

Einen virtuellen Nginx-Host für WordPress erstellen

Als Nächstes musst du eine Konfigurationsdatei für einen virtuellen Nginx-Host erstellen, um WordPress über das Internet bereitzustellen.

nano /etc/nginx/conf.d/wordpress.conf

Füge die folgende Konfiguration hinzu:

server {
    listen 80;
    root /var/www/html/wordpress;
    index  index.php index.html index.htm;
    server_name  wordpress.example.com;

    client_max_body_size 500M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
	
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }	

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }	

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

Speichere und schließe die Datei und überprüfe die Nginx-Konfiguration mit dem folgenden Befehl:

nginx -t

Du erhältst die folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte anschließend die Nginx- und PHP-FPM-Dienste neu, um die Änderungen zu übernehmen.

systemctl restart nginx
systemctl restart php8.1-fpm

Du kannst den Status von Nginx auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du erhältst die folgende Ausgabe:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-05 11:36:28 UTC; 10s ago
       Docs: man:nginx(8)
    Process: 16880 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 16882 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 16883 (nginx)
      Tasks: 3 (limit: 4630)
     Memory: 3.4M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??16883 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??16884 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??16885 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 05 11:36:28 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 05 11:36:28 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

WordPress Web-Installation abgeschlossen

Öffne nun deinen Webbrowser und rufe den WordPress-Installationsassistenten über die URL http://wordpress.example.com auf . Du wirst auf die folgende Seite weitergeleitet:

Sprache wählen

Wähle deine Sprache aus und klicke auf die Schaltfläche Weiter. Du solltest die WordPress-Site-Konfigurationsseite sehen:

Website-Einstellungen

Gib deinen Website-Namen, deinen Admin-Benutzernamen, dein Passwort und deine E-Mail-Adresse ein und klicke auf die Schaltfläche WordPress installieren. Sobald WordPress installiert ist, solltest du die folgende Seite sehen:

WordPress Installation erfolgreich

Klicke auf die Schaltfläche Anmelden. Du solltest die WordPress-Anmeldeseite sehen:

Anmeldung als Administrator

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Auf der folgenden Seite solltest du das WordPress-Dashboard sehen:

WordPress Admin Dashboard

Aktiviere HTTPS auf WordPress

Um HTTPS auf deiner Website zu aktivieren, musst du den Certbot Let’s Encrypt Client auf deinem System installieren. Du kannst ihn installieren, indem du den folgenden Befehl ausführst:

apt-get install python3-certbot-nginx -y

Sobald der Certbot-Client installiert ist, führe den folgenden Befehl aus, um HTTPS auf deiner Website zu aktivieren:

certbot --nginx -d wordpress.example.com

Du wirst aufgefordert, eine gültige E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wordpress.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/wordpress.conf

Als Nächstes wählst du aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Gib 2 ein und drücke die Eingabetaste, um die Installation abzuschließen. Du solltest die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wordpress.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wordpress.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress.example.com/privkey.pem
   Your cert will expire on 2023-02-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Fazit

Herzlichen Glückwunsch! Du hast WordPress erfolgreich mit Nginx und Let’s Encrypt SSL auf Ubuntu 22.04 installiert. Jetzt kannst du deine bevorzugten Themes und Plugins installieren und mit der Erstellung deiner eigenen Website beginnen.

Das könnte dich auch interessieren …