Einrichten einer lokalen WordPress-Entwicklungsumgebung mit Vagrant

Wenn Sie mit WordPress entwickeln, ist es vorzuziehen, eine lokale Umgebung einzurichten, in der Sie einen Server, ein Datenbanktool und einige WordPress-Sites zusammen mit anderen Tools, die Sie benötigen, installiert haben. Dies ist in Ordnung, wenn Sie nur an einigen wenigen Projekten arbeiten. Aber wenn sie sich vervielfachen, treten Probleme auf. Und auch die Kopfschmerzen der Wartung mehrerer Umgebungen, weil der Client eine andere Einrichtung hat als Sie.

Um dieses Problem zu umgehen, können wir das sogenannte Vagrant verwenden. Vagrant ist ein Werkzeug für die Arbeit mit virtuellen Umgebungen. Es bietet eine einfache Möglichkeit, eine lokale Entwicklungsumgebung mit wenigen Befehlen einzurichten, und Sie können ein komplettes Setup so oft Sie wollen replizieren, wie Sie wollen, mit Leichtigkeit und ohne die Mühe, alles manuell zu installieren. Um Vagrant auszuführen, müssen Sie eine Reihe von Regeln definieren. Vagrant richtet Ihre virtuelle Maschine auf der Grundlage dieser Regeln ein. Vagrant benötigt dafür zwei Dateien: Vagrantdatei, die Vagrant mitteilt, welche Art von Hardware die virtuelle Maschine benötigt, und eine Bereitstellungsdatei, die Vagrant mitteilt, was auf der virtuellen Maschine zu tun ist.

Da Vagrant mit virtuellen Umgebungen arbeitet, benötigen Sie die Software der virtuellen Maschine, um Vagrant auszuführen. Für unsere Zwecke werden wir die Open Source Virtualbox verwenden.

Installieren von VirtualBox

Gehen Sie auf die Download-Seite von Virtualbox und laden Sie eine Binärdatei herunter, die Ihrem Guest-Host entspricht. (Der Guest-Host ist das Betriebssystem, von dem aus Sie Ihre Entwicklungsumgebung betreiben werden). Installieren Sie Virtualbox.

Vagrant installieren

Laden Sie die Ihrem Betriebssystem entsprechende Binärdatei von der Download-Seite von Vagrant herunter und installieren Sie sie.

Um zu testen, ob sie erfolgreich installiert wurde, geben Sie den folgenden Befehl in die Befehlszeile Ihres Betriebssystems ein.

$ vagrant -v

Installieren des Vagrant Hosts Updater Plugins

Das Vagrant-Hostupdater-Plugin wird die Hosts-Datei Ihres Betriebssystems so modifizieren, dass die von Vagrant eingerichteten Domains funktionieren. Um es zu installieren, führen Sie den folgenden Befehl aus

$ vagrant plugin install vagrant-hostsupdater

Starten Sie Ihr Betriebssystem nach der Installation von Vagrant/Virtualbox neu, damit keine Netzwerkprobleme auftreten.

Git installieren

Linux

Wir werden auch Git-Versionskontrolle für dieses Tutorial benötigen. Wenn Sie sie nicht installiert haben, dann installieren Sie sie mit dem folgenden Befehl, wenn Sie eine Debian/Ubuntu-Distribution haben

$ sudo apt install git

oder wenn Sie Fedora haben

$ sudo dnf install git

oder wenn Sie CentOS/RHEL haben

$ sudo yum install git

Überprüfen Sie die installierte Version von Git mit dem folgenden Befehl

$ git --version

Sie werden etwas sehen wie

$ git version 2.20.1

Sie müssen Git mit den folgenden Befehlen einrichten.

$ git config --global user.name "Your Name" 
$ git config --global user.email "[email protected]"

Fenster

Um Git unter Windows zu installieren, gehen Sie auf die Download-Seite von Git und installieren Sie die Binärdatei.

Mac OS

Wenn Sie Homebrew installiert haben, dann können Sie Git mit dem folgenden Befehl installieren.

$ brew install git

oder Sie können ein Binärpaket von der Download-Seite von Git herunterladen und installieren.

Unterschiedliche Landstreicher installieren

Anstatt eine Vagrant Konfiguration von Grund auf neu zu erstellen, werden wir Varying Vagrants Vagrant(VVV) verwenden – eine Open Source Vagrant Konfiguration, die speziell auf die Erstellung von WordPress Entwicklungsumgebungen ausgerichtet ist. Ein Standard-VVV wird Ihre virtuelle Maschine basierend auf Ubuntu 18.04 zusammen mit Nginx-Server, MariaDB-Datenbank, PHP, WP-CLI, Node.js, MailHog, Composer, memcached, phpMyAdmin, git und verschiedenen anderen Tools einrichten. VVV stellt Ihnen standardmäßig mehrere WordPress-Installationen zur Verfügung, eine davon ist die neueste Version, die Ihnen beim Experimentieren hilft.

Der erste Schritt besteht darin, das Git-Repository von VVV in ein lokales Verzeichnis auf Ihrem System zu klonen.

$ git clone -b master git://github.com/Varying-Vagrant-Vagrants/VVV.git ~/vvv

Hier klonen wir den Master-Zweig des Repositoriums auf dem System. Wenn Sie schnellere Aktualisierungen wünschen, können Sie den Entwicklungszweig verwenden.

VVV starten

Wechseln Sie zu dem Verzeichnis, in dem Sie VVV geklont haben.

$ cd vvv

Starten Sie die Vagrant-Umgebung, die die virtuelle Maschine installiert und alle Einstellungen vornimmt.

$ vagrant up

Dieser Prozess kann eine Weile dauern, seien Sie also geduldig. Möglicherweise werden Sie während des Prozesses nach Ihrem Root-Passwort gefragt, das für die Einrichtung der Host-Datei Ihres Systems erforderlich ist.

Hinweis für Windows 8/10-Benutzer

Wenn Sie unter Windows arbeiten, erhalten Sie möglicherweise den folgenden Fehler

==> default: Booting VM... 
There was an error while executing `VBoxManage`, a CLI used by Vagrant 
for controlling VirtualBox. The command and stderr is shown below.

Command: [„startvm“, „1fe83aa1-2f23-4ddd-ad77-b7e7e00aabe6“, „–type“, „headless“]

Stderr: VBoxManage.exe: error: Failed to open/create the internal network ‚HostInterfaceNetworking-VirtualBox Host-Only
Ethernet Adapter #3‘ (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

Beachten Sie den hier erwähnten Adapter:

VirtualBox Host-Only Ethernet Adapter #3

Öffnen Sie die Systemsteuerung >> Netzwerk- und Freigabecenter. Klicken Sie nun auf Adapter-Einstellungen ändern. Klicken Sie mit der rechten Maustaste auf den Adapter, dessen Name oder der Gerätename mit dem VirtualBox Host-Only Ethernet-Adapter Nr. 3 übereinstimmt, und klicken Sie auf Eigenschaften. Klicken Sie auf die Schaltfläche Configure.

Klicken Sie nun auf die Registerkarte Treiber. Klicken Sie auf Treiber aktualisieren. Wählen Sie Meinen Computer nach Treibern durchsuchen. Wählen Sie nun Let me pick from a list of available drivers on my computer. Wählen Sie die Auswahl, die Sie erhalten, und klicken Sie auf Weiter. Klicken Sie auf Schließen, um die Aktualisierung abzuschließen. Gehen Sie nun zurück zu Ihrem Terminal/Powershell/Befehlsfenster und wiederholen Sie den Befehl Vagrant Up. Diesmal sollte es gut funktionieren.

Sobald dies abgeschlossen ist, können Sie Ihr VVV-Dashboard unter http://vvv.test url besuchen.

VVV wird mit zwei Standard-WordPress-Installationen geliefert – http://one.wordpress.test und http://two.wordpress.test. Beide Seiten haben dieselben Anmeldedaten, admin als Benutzername und Passwort als Passwort. Die Datenbank-Anmeldedaten für beide Seiten sind wp als Benutzername und Passwort. Die MySQL Root-Benutzeranmeldeinformationen sind sowohl als Benutzername als auch als Passwort root. Und die Anmeldedaten des Root-Benutzers der VM sind root als Benutzername und vagabundierend als Passwort.

Es gibt eine Entwickler-Wordpress-Installation unter http://trunk.wordpress.net, aber sie wird nicht funktionieren, da sie nicht bereitgestellt wurde. Diese Installation ist nützlich, wenn Sie ein WordPress-Beitraggeber sind, der mit Trac-Tickets und Patches arbeitet. Um sie zu aktivieren, öffnen Sie die Datei vvv-custom.yml und ändern Sie den Wert von skip_provisioning unter wordpress-trunk auf false und stellen Sie dann die VM mit dem Befehl

$ vagrant reload --provision

Es gibt eine weitere WordPress-Installation ohne Url, die als WordPress-Meta-Umgebung gekennzeichnet ist. Diese Installation wird eine Umgebung schaffen, die für Beiträge zum WordPress-Meta-Team nützlich ist, z.B. WordCamps, .org usw. Um diese Installation zu aktivieren, fügen Sie die folgende Zeile unter wordpress-meta-environment in der Datei vvv-custom.yml hinzu.

hosts:
  - wpmeta.test

Und dann ändern Sie den Wert von skip_provisioning auf false und stellen die VM erneut bereit.

$ vagrant reload --provision

Neue Site hinzufügen

Wenn Sie der VM eine weitere Site hinzufügen möchten, müssen Sie die Datei vvv-custom.yml bearbeiten, die Sie im vvv-Verzeichnis finden. Falls sie nicht vorhanden ist, kopieren Sie einfach die vvv-config.yml und erstellen Sie sie. Dies ist ein einmaliger Vorgang und Sie müssen ihn nicht noch einmal durchführen. Nehmen Sie Ihre Änderungen immer in der vvv-custom.yml vor, da die vvv-config.yml beim Aktualisieren von VVV überschrieben wird.

Fügen Sie den folgenden Code unter dem Abschnitt sites zu vvv-custom.yml hinzu, um eine neue Site hinzuzufügen.

newsite:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress subdir multisite install"
    vm_dir: /srv/www/newsite
    local_dir: /home/user/vvv/www/newsite
    branch: master
    nginx_upstream: php
    skip_provisioning: false
    hosts:
      - newsite.test
    custom:
      wp_type: subdirectory

Variablen

Die Repo-Variable bezieht sich auf ein vordefiniertes Github-Repository, das Informationen darüber enthält, wie eine neue WordPress-Site auf der VM eingerichtet werden kann. Im Moment verwenden wir ein Repo, das vom VVV gepflegt wird.

Die Beschreibungsvariable ist selbsterklärend.

vm_dir ist das tatsächliche Verzeichnis innerhalb der VM, in dem Ihre Site gespeichert wird.

local_dir ist das Verzeichnis auf Ihrem Host-Rechner, in dem Ihre Website liegt.

Die Zweigvariable weist Vagrant an, den Master-Zweig des Repos in diesem Beispiel auszuchecken.

nginx_upstream wird verwendet, um festzulegen, wohin Nginx Anfragen weiterleitet, und wird normalerweise verwendet, um die für Ihre Installation benötigte PHP-Version zu ändern. php bezieht sich hier auf die Standard-PHP-Version, die 7.2 ist. Sie können php71 verwenden, um sie auf PHP 7.1 zu ändern, oder php56, um sie auf PHP 5.6 zu ändern.

skip_provisioning ist auf false gesetzt, was bedeutet, dass wir diese Site in die VM einbinden müssen.

Die Variable hosts wird verwendet, um die Url zu setzen, die wir für den Zugriff auf die Site benötigen.

benutzerdefinierter Abschnitt ist nützlich, wenn Sie eine zusätzliche Kontrolle über Ihre WordPress-Site benötigen. Sie können diesen Abschnitt verwenden, um eine Multisite-Installation einzurichten oder eine andere Version von WordPress zu installieren und sogar den Namen der Datenbank oder Ihrer Website, die für Ihre Installation verwendet wird, zu ändern.

Die wp_type-Variable entscheidet, ob Ihre Installation eine einzelne, mehrere Websites mit Domänen oder mehrere Websites mit Unterverzeichnissen sein wird. wp_type nimmt vier Werte an: single, subdomain, subdirectory und none. Mit der Subdomain-Installation können Sie mehrere Hosts für Ihre Multisite-Installation in folgendem Format definieren

hosts:
    - multisite.test
    - site1.multisite.test
    - site2.multisite.test
  custom:
    wp_type: subdomain

Sie können eine weitere Variable unter dem benutzerdefinierten Abschnitt hinzufügen, nämlich wp_version. Sie können sie auf Nightly setzen, wenn Sie die Nightly-Version von WordPress installieren wollen. Sie benötigt drei Werte: nightly, latest und eine Versionsnummer.

custom: 
     wp_version: nightly

Es gibt eine weitere Variable, db_name, mit der Sie den Namen der Datenbank für Ihre Installation festlegen können.

custom:
    db_name: super_secet_db_name

Und schließlich können Sie über die Variable site_title den Titel Ihrer WP-Site festlegen.

custom:
    site_title: My Awesome Dev Site

Dies sollte alle Variablen und Optionen abdecken, die Sie benötigen, um Ihre eigene Website im VVV hinzuzufügen. Nachdem Sie die Datei vvv-custom.yml geändert haben, führen Sie einfach den folgenden Befehl aus, damit Ihre neue Website funktioniert.

$ vagrant reload --provision

Vorhandene Site hinzufügen

Bisher haben wir gelernt, wie man eine völlig neue Website zum VVV hinzufügen kann. Aber was ist, wenn Sie bereits an einer Website arbeiten und diese unter VVV hinzufügen möchten? Mal sehen, wie wir das machen können.

Um eine bestehende Site hinzuzufügen, ist der erste Schritt derselbe wie vorher, d.h. die Datei vvv-custom.yml bearbeiten und den folgenden Code hinzufügen.

howtoforge:
    repo: https://github.com/Varying-Vagrant-Vagrants/custom-site-template
    description: "A WordPress site"
    vm_dir: /srv/www/newsite
    local_dir: /home/user/vvv/www/newsite
    hosts:
      - howtoforge.local

Dies wird den VVV dazu veranlassen, eine neue Website einzurichten, die über http://howtoforge.local zugänglich ist, aber es ist eine völlig neue Website. Was wir tun müssen, ist, sie in unsere bestehende Installation umzuwandeln. Dazu müssen wir die Dateien aus unserer bestehenden WordPress-Installation in das lokale Verzeichnis kopieren, d.h. /home/user/vvvv/www/newsite

$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/

Jetzt müssen wir die Datenbank kopieren. Eine einfache Möglichkeit ist es, Ihre bestehende Datenbank als .sql-Datei zu exportieren, diese Datei in das Verzeichnis unseres Blogs zu kopieren und die Datenbank per SSHing in unsere VM zu importieren.

Melden Sie sich zunächst in der Befehlszeile Ihres lokalen Systems bei mysql an und verwenden Sie den folgenden Befehl, um die Datenbank zu exportieren.

$ cd /home/user/vvv/www/newsite
$ mysqldump -u username -p database_name > data-dump.sql

Jetzt können wir die VM wieder bereitstellen.

$ vagrant reload --provision

SSH in Ihre VM.

$ vagrant ssh

Importieren Sie nun die Datenbank wieder in Ihre VM.

$ cd /srv/www/newsite 
$ mysql -u root -p newsite < data-dump.sql

Der VVV hat bereits während der Bereitstellung unseres Blogs eine neue Datenbank mit dem Namen newsite erstellt. Das Passwort für den Benutzer root lautet hier root. Der obige Befehl importiert unsere bestehende Datenbank in die neue.

Damit ist die Einrichtung einer bestehenden Website im VVV abgeschlossen.

SSL aktivieren

Localhost-Installationen sind normalerweise nicht gesichert. Und die Installation Ihres eigenen Zertifikats auf localhost kann ein langwieriger und mühsamer Prozess sein, selbst mit Let’s Encrypt. Aber VVV macht diesen Prozess recht einfach und hat standardmäßig SSL auf allen Ihren WordPress-Installationen aktiviert. Fangen Sie einfach an, https mit Ihren Websites zu verwenden. Zum ersten Mal wird sich Ihr Browser über ein ungültiges Zertifikat beschweren, aber fügen Sie es ausnahmsweise hinzu und es sollte von nun an in Ordnung sein.

Aktualisierung von WordPress

Sie können Ihre WordPress-Installation von Ihrem Dashboard aus aktualisieren. Außerdem wird VVV Ihre WordPress aktualisieren, wenn Sie die VM neu bereitstellen. Sie können WordPress auch manuell aktualisieren, indem Sie es von WordPress.org herunterladen und die Zip-Datei extrahieren. Und Sie können auch das WP CLI verwenden, das mit VVV gebündelt ist. Um Ihre Website mit WP CLI zu aktualisieren, verwenden Sie die folgenden Befehle.

$ cd /srv/www/newsite
$ wp core update

VVV aktualisieren

Der erste Schritt ist das Anhalten der Vagrant-Maschine.

$ vagrant halt

Vergewissern Sie sich jetzt, dass Ihr Landstreicher und Ihre Virtualbox auf dem neuesten Stand sind. Wenn nicht, laden Sie sie erneut herunter und installieren Sie sie.

Führen Sie den folgenden Befehl aus, um Ihre Vagrant-Box zu aktualisieren. Es ist optional, aber es ist am besten, wenn Sie damit fortfahren.

$ vagrant box update

Ziehen Sie jetzt die neueste VVV-Version aus Github.

$ git pull

Stellen Sie das Feld erneut bereit, um die Aktualisierung abzuschließen.

$ vagrant up --provision

Zusätzliche Werkzeuge

VVV wird mit verschiedenen Hilfsprogrammen ausgeliefert, die Sie installieren können. Sie finden sie unter dem Abschnitt Utilities in Ihrer Datei vvv-custom.yml. Standardmäßig sind tls-ca und phpmyadmin aktiviert. Sie können außerdem memcached, opcache, webgrind, mongodb, tideways und php-Versionen von 5.6 bis 7.3 installieren, indem Sie das # vor ihnen im Abschnitt Utilities entfernen.

Sie können sogar Ihre eigene Software hinzufügen, die Sie installieren möchten. Sie müssten die Datei vvv-custom.yml mit etwas wie

utilities:
  core:
    - tls-ca
    - phpmyadmin
  java:
    - java7
utility-sources:
  java:
    repo: https://github.com/example/java-utilities.git
    branch: master

Sie werden einen neuen Abschnitt hinzufügen, z.B. java hier. Der Code für die Installation wird aus einem git-Repository kommen. Ihr Git-Repository sollte etwa so strukturiert sein wie

java7/
    provision.sh

Die Datei provision.sh enthält den notwendigen Code zur Installation von Java in Ihrer VM. Der Name des Ordners sollte mit dem Namen übereinstimmen, den Sie oben in der Datei vvv-custom.yml verwendet haben.

Schlussfolgerung

Damit ist unser Tutorial über die Einrichtung einer lokalen WordPress-Entwicklungsumgebung mit Vagrant abgeschlossen. Lassen Sie uns wissen, wenn Sie Fragen haben.

Das könnte Dich auch interessieren …