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 benötigten Tools installiert haben. Das ist in Ordnung, wenn Sie nur an wenigen Projekten arbeiten. Aber wenn sie sich vermehren, treten Probleme auf. Und auch die Kopfschmerzen bei der Verwaltung mehrerer Umgebungen, weil der Client eine andere Einrichtung hat als Sie.
Um dieses Problem zu umgehen, können wir das verwenden, was wir Vagrant nennen. Vagrant ist ein Tool für die Arbeit mit virtuellen Umgebungen. Es bietet eine einfache Möglichkeit, mit wenigen Befehlen eine lokale Entwicklungsumgebung einzurichten, und Sie können ein vollständiges Setup beliebig oft replizieren, ganz einfach und ohne den Aufwand, alles manuell zu installieren. Um Vagrant auszuführen, müssen Sie eine Reihe von Regeln definieren. Vagrant richtet Ihre virtuelle Maschine basierend auf diesen Regeln ein. Vagrant benötigt dafür zwei Dateien:Vagrantfile, das 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 Software für virtuelle Maschinen, um Vagrant auszuführen. Für unsere Zwecke verwenden wir die Open Source Virtualbox.
Installation von VirtualBox
Gehen Sie zur Downloadseite von Virtualbox und laden Sie eine Binärdatei herunter, die Ihrem Gasthost entspricht. (Gasthost ist das Betriebssystem, von dem aus Sie Ihre Entwicklungsumgebung ausführen.) Installieren Sie Virtualbox.
Installieren von Vagrant
Laden Sie die Ihrem Betriebssystem entsprechende Binärdatei von der Download-Seite von Vagrant herunter und installieren Sie sie.
Um zu testen, ob es erfolgreich installiert wurde, geben Sie den folgenden Befehl in die Befehlszeile Ihres Betriebssystems ein.
$ vagrant -v
Installieren des Vagrant Hosts Updater-Plug-ins
Das vagrant-hostupdater-Plug-in ändert die Hosts-Datei Ihres Betriebssystems, sodass 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
Für dieses Tutorial benötigen wir auch die Git-Versionskontrolle. Wenn Sie es nicht installiert haben, installieren Sie es 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 sehen so etwas wie
$ git version 2.20.1
Sie müssen Git über die folgenden Befehle einrichten.
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Windows
Um Git unter Windows zu installieren, gehen Sie zur Download-Seite von Git und installieren Sie die Binärdatei.
Mac OS
Wenn Sie Homebrew installiert haben, können Sie Git mit dem folgenden Befehl installieren.
$ brew install git
oder Sie können ein Binärpaket von der Git-Download-Seite herunterladen und installieren.
Installieren Sie Variating Vagrant Vagrants
Anstatt ein Vagrant-Setup von Grund auf neu zu erstellen, verwenden wir Varying Vagrants Vagrant (VVV) – eine Open-Source-Vagrant-Konfiguration, die speziell auf die Erstellung von WordPress-Entwicklungsumgebungen abzielt. Ein Standard-VVV richtet 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 ein. VVV wird Ihnen standardmäßig mehrere WordPress-Installationen zur Verfügung stellen, 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-Branch des Repositorys auf dem System. Wenn Sie schnellere Updates wünschen, können Sie den Entwicklungszweig verwenden.
Starte VVV
Wechseln Sie in das Verzeichnis, in das Sie VVV geklont haben.
$ cd vvv
Starten Sie die Vagrant-Umgebung, die die virtuelle Maschine installiert und alles einrichtet.
$ vagrant up
Dieser Vorgang kann eine Weile dauern, seien Sie also geduldig. Möglicherweise werden Sie während des Vorgangs nach Ihrem Root-Passwort gefragt, das zum Einrichten der Hosts-Datei Ihres Systems erforderlich ist.
Hinweis für Benutzer von Windows 8/10
Unter Windows erhalten Sie möglicherweise die folgende Fehlermeldung
==> 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 Adapter, auf den hier verwiesen wird:
VirtualBox Host-Only Ethernet Adapter #3
Öffnen Sie die Systemsteuerung>> Netzwerk- und Freigabecenter. Klicken Sie nun auf Adaptereinstellungen ändern. Klicken Sie mit der rechten Maustaste auf den Adapter, dessen Name oder Gerätename mit VirtualBox Host-Only Ethernet Adapter # 3 übereinstimmt und klicken Sie auf Eigenschaften . Klicken Sie auf Konfigurieren Schaltfläche.
Klicken Sie nun auf den Treiber Tab. Klicken Sie auf Treiber aktualisieren . Wählen Sie Auf meinem Computer nach Treibern suchen aus . Wählen Sie nun Aus einer Liste verfügbarer Treiber auf meinem Computer auswählen . Wählen Sie die Auswahl, die Sie erhalten, und klicken Sie auf Weiter. Klicken Sie auf Schließen um das Update abzuschließen. Gehen Sie nun zurück zu Ihrem Terminal-/Powershell-/Befehlsfenster und wiederholen Sie den vagrant up Befehl. Diesmal sollte es gut funktionieren.
Sobald dies abgeschlossen ist, können Sie Ihr VVV-Dashboard unter http://vvv.test url.
besuchenVVV wird mit zwei standardmäßigen WordPress-Installationen geliefert – http://one.wordpress.test und http://two.wordpress.test Beide Seiten haben dieselben Anmeldedaten, admin B. Benutzername und Passwort als Passwort. Datenbankanmeldeinformationen für beide Sites sind wp als Benutzername und Passwort. MySQL-Root-Benutzeranmeldeinformationen sind root als Benutzername und Passwort. Und die Anmeldedaten des Root-Benutzers der VM lauten root als Benutzername und Landstreicher als Passwort.
Es gibt eine Entwickler-Wordpress-Installation unter http://trunk.wordpress.net, aber sie funktioniert nicht, da sie nicht bereitgestellt wurde. Diese Installation ist nützlich, wenn Sie ein WordPress-Mitarbeiter sind, der mit Trac-Tickets und -Patches arbeitet. Um es zu aktivieren, öffnen Sie vvv-custom.yml und ändern Sie den Wert von skip_provisioning unter WordPress-Trunk auf false setzen und stellen Sie dann die VM mit dem Befehl
erneut bereit$ vagrant reload --provision
Es gibt eine andere WordPress-Installation ohne URL, die als WordPress-Meta-Umgebung gekennzeichnet ist. Diese Installation erstellt eine Umgebung, 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.
hosts:
- wpmeta.test
Und ändern Sie dann den Wert von skip_provisioning auf false und stellen Sie die VM erneut bereit.
$ vagrant reload --provision
Neue Website hinzufügen
Wenn Sie der VM eine weitere Site hinzufügen möchten, müssen Sie die vvv-custom.yml bearbeiten Datei, die Sie im vvv finden Verzeichnis. Wenn es nicht da ist, kopieren Sie einfach vvv-config.yml und erschaffe es. Dies ist ein einmaliger Vorgang und Sie müssen ihn nicht wiederholen. Nehmen Sie Ihre Änderungen immer in vvv-custom.yml vor weil vvv-config.yml wird überschrieben, wenn Sie VVV aktualisieren.
Fügen Sie den folgenden Code im Abschnitt "Sites" zu vvv-custom.yml hinzu um eine neue Seite 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
Repo-Variable bezieht sich auf ein vordefiniertes Github-Repository, das Informationen zum Einrichten einer neuen WordPress-Site auf der VM enthält. Im Moment verwenden wir ein vom VVV verwaltetes Repo.
Beschreibung Variable ist selbsterklärend.
vm_dir ist das tatsächliche Verzeichnis innerhalb der VM, in der sich Ihre Website befinden wird.
local_dir ist das Verzeichnis auf Ihrem Host-Rechner, auf dem sich Ihre Site befindet.
Zweig Variable weist Vagrant an, den Hauptzweig 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 erforderliche PHP-Version zu ändern. php bezieht sich hier auf die Standard-PHP-Version, die 7.2 ist. Sie können php71 verwenden, um es auf PHP 7.1 zu ändern, oder php56, um es auf PHP 5.6 zu ändern.
Skip_Provisioning ist auf „false“ gesetzt, was bedeutet, dass wir diese Website in die VM aufnehmen müssen.
Gastgeber Die Variable wird verwendet, um die URL festzulegen, die wir für den Zugriff auf die Site benötigen.
benutzerdefiniert Abschnitt ist nützlich, wenn Sie 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 Site zu ändern, die für Ihre Installation verwendet wird.
wp_type Variable entscheidet, ob Ihre Installation eine Single, Multisite mit Domains oder Multisite mit Unterverzeichnis 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 im folgenden Format definieren
hosts:
- multisite.test
- site1.multisite.test
- site2.multisite.test
custom:
wp_type: subdomain
Du kannst eine weitere Variable unter dem benutzerdefinierten Abschnitt hinzufügen, nämlich wp_version . Sie können es auf Nightly einstellen, wenn Sie die Nightly-Version von WordPress installieren möchten. Es braucht drei Werte:Nightly, Latest und eine Versionsnummer.
custom: wp_version: nightly
Es gibt eine weitere Variable, db_name wodurch Sie den Namen der Datenbank für Ihre Installation festlegen können.
custom:
db_name: super_secet_db_name
Und schließlich site_title Mit der Variable können Sie 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 in VVV hinzuzufügen. Führen Sie nach dem Ändern der vvv-custom.yml-Datei einfach den folgenden Befehl aus, damit Ihre neue Site funktioniert.
$ vagrant reload --provision
Vorhandene Website hinzufügen
Bisher haben wir gelernt, wie man VVV eine völlig neue Website hinzufügt. Was aber, wenn Sie bereits an einer Site 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 zuvor, d. h. Bearbeiten der vvv-custom.yml-Datei und Hinzufügen des folgenden Codes.
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
Dadurch wird VVV angewiesen, eine neue Website einzurichten, auf die über http://howtoforge.local zugegriffen werden kann Aber es ist eine völlig neue Seite. Was wir tun müssen, ist, es in unsere vorhandene Installation zu konvertieren. Dazu müssen wir die Dateien von unserer bestehenden WordPress-Installation in das lokale Verzeichnis kopieren, z. B. /home/user/vvv/www/newsite
$ cp /var/www/howtoforge/ /home/user/vvv/www/newsite/
Jetzt müssen wir die Datenbank kopieren. Eine einfache Möglichkeit, dies zu tun, besteht darin, Ihre vorhandene Datenbank als .sql-Datei zu exportieren, diese Datei in das Verzeichnis unseres Blogs zu kopieren und die Datenbank erneut per SSH 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 erneut bereitstellen.
$ vagrant reload --provision
SSH in Ihre VM.
$ vagrant ssh
Importieren Sie nun die Datenbank zurück in Ihre VM.
$ cd /srv/www/newsite $ mysql -u root -p newsite < data-dump.sql
Der VVV hat bereits während der Bereitstellung für unseren Blog namens newsite eine neue Datenbank erstellt. Das Passwort für den Root-Benutzer lautet hier root. Der obige Befehl importiert unsere vorhandene Datenbank in die neue.
Damit ist die Einrichtung einer bestehenden Site 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 ziemlich einfach und hat standardmäßig SSL auf allen Ihren WordPress-Installationen aktiviert. Beginnen Sie einfach mit der Verwendung von https mit Ihren Websites. Zum ersten Mal beschwert sich Ihr Browser über ein ungültiges Zertifikat, fügt es aber als Ausnahme hinzu und es sollte von nun an in Ordnung sein.
WordPress aktualisieren
Sie können Ihre WordPress-Installation von Ihrem Dashboard aus aktualisieren. Außerdem aktualisiert VVV Ihre WordPress, wenn Sie die VM neu bereitstellen. Du kannst WordPress auch manuell aktualisieren, indem du es von WordPress.org herunterlädst und die ZIP-Datei entpackst. Und Sie können auch WP CLI verwenden, das mit VVV gebündelt ist. Verwenden Sie die folgenden Befehle, um Ihre Site mit WP CLI zu aktualisieren.
$ cd /srv/www/newsite $ wp core update
VVV aktualisieren
Der erste Schritt ist, die Vagrant-Maschine zu stoppen.
$ vagrant halt
Stellen Sie nun sicher, dass Ihr Vagrant und 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 von Github herunter.
$ git pull
Stellen Sie die Box erneut bereit, um das Update abzuschließen.
$ vagrant up --provision
Zusätzliche Tools
VVV wird mit verschiedenen Dienstprogrammen geliefert, die Sie installieren können. Sie finden sie im Abschnitt Utilities in Ihrer Datei vvv-custom.yml aufgelistet. Standardmäßig sind tls-ca und phpmyadmin aktiviert. Sie können die Memcache-, Opcache-, Webgrind-, Mongodb-, Tideways- und PHP-Versionen von 5.6 bis 7.3 weiter installieren, indem Sie das # davor im Abschnitt "Dienstprogramme" entfernen.
Sie können sogar Ihre eigene Software hinzufügen, die Sie installieren möchten. Sie müssten die vvv-custom.yml ändern Datei mit so etwas wie
utilities:
core:
- tls-ca
- phpmyadmin
java:
- java7
utility-sources:
java:
repo: https://github.com/example/java-utilities.git
branch: master
Sie fügen hier beispielsweise einen neuen Abschnitt Java hinzu. Der Code für die Installation stammt aus einem Git-Repository. Ihr Git-Repository sollte so strukturiert sein wie
java7/
provision.sh
Die Datei „provision.sh“ enthält den erforderlichen Code zum Installieren von Java in Ihrer VM. Der Name des Ordners sollte mit dem Namen übereinstimmen, den Sie oben in der vvv-custom.yml verwendet haben Datei.
Schlussfolgerung
Damit ist unser Tutorial zum Einrichten einer lokalen WordPress-Entwicklungsumgebung mit Vagrant abgeschlossen. Lassen Sie uns wissen, wenn Sie Fragen haben.