WordPress auf einem VPS installieren

blog head

Du wolltest schon immer deine eigene Website oder einen Blog betreiben aber Du kannst selbst nicht programmieren, oder hast keine Zeit, dir eine eigene, komplexe Website zu schreiben? Dann ist WordPress genau das richtige für dich!
WordPress ist freies Content.Management-System (CMS) mit dem sich eigene Websites, Blogs und vieles mehr realisieren lässt. Laut Wikipedia wird WordPress von über 40% aller Websites, dessen CMS bekannt ist, eingesetzt.
Funfact: Auch bei unserem Blog setzen wir auf WordPress! WordPress kann zudem mit unfassbar vielen Plugins und Extensions erweitert und angepasst werden und ist zu dem komplett personalisierbar. Einen kompletten Artikel über alle Funktionen von WordPress zu schreiben, wäre bei diesem Funktionsumfang unmöglich, weshalb wir uns in diesem Artikel auf die Installation von WordPress fokussieren. 

Fangen wir an!

Inhaltsverzeichnis

Vorraussetzungen

  • Einen Server mit Linux-Betriebssystem (z.B. einen VPS
  • Root-Zugriff auf den Server 
  • Eine (Sub)Domain  (Empfohlen!) 

PHP8.1 Installation

Damit WordPress überhaupt laufen kannst, wird PHP benötigt. Die offiziellen Anforderungen von WordPress sind PHP7.4 oder höher. Wir installieren im folgenden die neuste PHP Version, nämlich 8.1.

PHP Repository hinzufügen

Das PHP 8.1 Repository ist in Debian 10 nicht enthalten, weshalb wir dieses zunächst hinzufügen müssen. Gebt hierfür die folgenden Befehle nacheinander ein:

apt install sudo nano

sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list 

wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add - 

apt update && apt upgrade –y 

PHP8.1 installieren

Die Installation von PHP ist mit einem einzigen Befehl erledigt. Gebt hierfür diesen Befehl ein:

apt install php8.1 -y

Die php.ini anpassen

Nachdem wir PHP installiert haben, müssen wir die Konfigurationsdatei von PHP, nämlich die php.ini, anpassen. Hierfür nutzen wir den Texteditor nano. Öffnet die php.ini mit diesem Befehl:

nano /etc/php/8.1/apache2/php.ini

Folgenden Parameter müssen abgeändert werden:

memory_limit = 1024M  

upload_max_filesize = 16G  

post_max_size = 16G  

date.timezone = <DeineZeitzone>

Die Zeitzone (Timezone) muss in diesem Format angegeben werden: Europe/Berlin

Deinen Timezone database name findest du hier.

Tipp: Damit Ihr nicht durch die ganze Datei scrollen müsst, um die jeweiligen Einträge zu finden, könnt Ihr mit der Tastenkombination [STRG+W] ein Suchfeld öffnen. Tragt hier den Namen des Parameters ein (z.B. memory_limit) und bestätigt Eure Eingabe mit [Enter]. Der Cursor springt nun in die richtige Zeile und Ihr könnt die Zeile anpassen.  

Nachdem Ihr alle Einträge abgeändert/angepasst habt, speichert Ihr die Änderung mit [STRG+O] und schließt den Editor mit [STRG+X].

Weitere Programme installieren

Damit WordPress überhaupt läuft werden weitere Programme, u.a. Apache2, eine Datenbanksoftware und weitere benötigt. Die Installation von PHP 8.1 haben wir ja bereits durchgeführt. Nun installieren wir die anderen benötigten Programme mit diesem Befehl:

apt install apache2 unzip wget curl mariadb-client mariadb-server

Datenbank anlegen

WordPress legt Daten wie z.B. Benutzerinformationen usw. in einer Datenbank ab. Diese müssen wir allerdings zunächst erstellen. Hierfür kommt MariaDB zum Einsatz, was auf MySQL basiert.  

Loggt euch zunächst über die Konsole in die Datenbanksoftware mit diesem Befehl ein:

mysql -u root -p

Ihr werden nun aufgefordert, euer Root-Passwort einzugeben.  

Mit dem folgenden Befehl erstellt Ihr eine Datenbank:

create database wordpress;

Erstellt nun einen Datenbank Benutzer mit diesem Befehl:

create user ‘wordpress‘@‘localhost‘ identified by ‘PASSWORT’;

WICHTIG: Ersetzt das ‘PASSWORT’ bitte durch ein sicheres Passwort. Das Apostroph vor und hinter dem Passwort muss allerdings stehen bleiben!  

Gewähre dem Datenbankbenutzer nun Zugriff auf die WordPress Datenbank mit diesem Befehl:

grant all privileges on wordpress.* to ‘wordpress’@’localhost’;

Aktualisiere nun die Datenbank mit dem folgendem Befehl:

flush privileges;

Nun hast Du sowohl eine Datenbank, als auch einen dazugehörigen Benutzer erstellt und kannst die Datenbank mit diesem Befehl verlassen:

exit;

Platzhalter Website löschen

Bevor wir mit dem Download der WordPress Dateien fortfahren, löschen wir noch schnell die Platzhalter Website, die unser Webserver, also Apache2, erstellt hat. 

Dies geht mit folgendem Befehl:

cd /var/www/html && rm index.html

WordPress Dateien herunterladen

Nun ist es an der Zeit die eigentlichen WordPress Dateien herunterzuladen. Führt hierfür den folgenden Befehl aus:

cd /home && wget https://de.wordpress.org/latest-de_DE.zip

Mit diesem Befehl entpackt Ihr das heruntergeladene Zip-Archiv:

unzip latest-de_DE.zip

Das Zip-Archiv wird nun nicht mehr benötigt und kann mit diesem Befehl gelöscht werden:

rm latest-de_DE.zip

Nun müssen wir die entpackten WordPress Dateien an die richtige Stelle verschieben. Das geht mit diesem Befehl:

cp -R /home/wordpress/* /var/www/html

Zugriffsrechte vergeben/anpassen

Damit der Webserver auf die WordPress Dateien zugreifen kann ist es notwendig, die Rechte hierfür anzupassen. 
Dies geht mit den folgenden drei Befehlen:

chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \; 
sudo find /var/www/html -type f -exec chmod 644 {} \;

Reverse-Proxy konfigurieren

Damit Apache2 erkennt, dass wir WordPress installiert haben, müssen wir einen Reverse-Proxy erstellen. Um diesen zu erstellen nutzen wir erneut den Text-Editor nano. Erstellt hierfür zunächst eine Konfigurationsdatei mit dem folgenden Befehl: 

nano /etc/apache2/sites-available/wordpress.conf 

In diese Datei fügt Ihr den folgenden Teil ein:

<VirtualHost *:80> 

     ServerAdmin <EureEmail> 

     DocumentRoot /var/www/html/ 

     ServerName <EureDomain> 

  

  

     <Directory /var/www/html/> 

        Options +FollowSymlinks 

        AllowOverride All 

        Require all granted 

          <IfModule mod_dav.c> 

            Dav off 

          </IfModule> 

        SetEnv HOME /var/www/html 

        SetEnv HTTP_HOME /var/www/html 

     </Directory> 

  

     ErrorLog ${APACHE_LOG_DIR}/error.log 

     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost>

Wichtig: Ersetzt in der zweiten Zeile <EureEmail> bitte durch eine gültige E-Mail Adresse, über die Ihr auch erreichbar seid. (Die beiden Zeichen, also „<“ und „>“ müssen entfernt werden.  

In der vierten Zeile müsst Ihr <EureDomain> durch eure Domain bzw. Subdomain ersetzen, also z.B. „meinewebsite.de“. (Auch hier müssen die beiden Zeichen, also „<“ und „>“ entfernt werden.)  

Speichert das Dokument nun mit [STRG+O] ab und verlasst den Editor mit [STRG+X].

Mit diesem Befehl aktiviert Ihr die eben erstellte Konfigurationsdatei:

a2ensite wordpress.conf

Damit alle Änderungen wirksam werden müsst Ihr den Webserver neustarten. Das könnt Ihr mit diesem Befehl tun: 

systemctl restart apache2

SSL-Zertifikat mit Certbot installieren

Um Datenübertragungen oder den Login sicherer zu machen, ist es empfehlenswert ein SSL-Zertifikat zu installieren. Hierfür nutzen wir den Certbot, welcher euch kostenlose Let’s-Encrypt Zertifikate erstellt, welche jeweils 90 Tage gültig sind.   

Weitere Informationen über den Certbot, z.B. wie das automatische Verlängern von Zertifikaten funktioniert, findet ihr auf der offiziellen Seite vom Certbot.  

Beginnen wir nun mit der Installation des Certbots und den benötigten Programmen. Dies geht mit dem folgenden Befehl:

  apt install certbot python3-certbot-apache -y

Nachdem Ihr den Certbot installiert habt, könnt Ihr ihn mit diesem Befehl starten:

ceertbot --apache

Wenn Ihr den Certbot zum ersten Mal startet, müsst Ihr zunächst den Lizenzbedingungen zustimmen. Dieser Prozess ist aber sehr intuitiv.  

Nachdem Ihr den Lizenzbedingungen zugestimmt habt, seht Ihr eine Liste mit Euren aktiven Websites bzw. deren (Sub)Domains. Gebt hier die Nummer der Seite ein, für die Ihr ein Zertifikat installieren wollt und wählt (falls gefragt) Redirect im nächsten Schritt aus. (Option 2)  

Nun sollte Euer Zertifikat installiert sein.

Einrichtung im Browser abschließen

Alle benötigten Programme sind nun installiert und alle Einstellungen abgeschlossen. Ihr könnt die Konsole nun schließen, da die Einrichtung jetzt im Browser abgeschlossen werden kann.  

Hierzu gebt ihr eure gewählte Domain (ggf. Subdomain) in die URL-Leiste eures Browsers ein. Der Installationsassisten wird nun aufgerufen:

Nachdem Du auf “Los geht’s!” geklickt hast, musst du in dem folgenden Fenster die Daten deiner Vorhin erstellten Datenbank eintragen:

Nachdem du deine Datenbank-Verbindung eingetragen hast, klicke auf Senden. 

Klicke auf der nächsten Seite auf “Installation durchführen”:

In dem folgenden Menü kannst du deiner Website einen Titel geben, sowie einen Admin-Zugriff erstellen:

Nachdem du auf “WordPress installieren” geklickt hast, wird bestätigt, dass die Installation erfolgreich war. Klicke nun auf “Anmelden” um dich ins Backend von deiner WordPress Instanz einzuloggen:

Tipp: Um auch zukünftig zum Login deiner WordPress Instanz zu gelangen, nutze folgendes URL-Schema: 

https://<Deine(Sub)Domain/wp-admin

Die Login-Maske sieht wie folgt aus:

Glückwunsch! Du hast eine voll Funktionstüchtige WordPress Instanz installiert. 

Viel Spaß beim personalisieren.