Lego2012
12/21/2016 - 4:31 PM

Vagrant Scotchbox Setup and Settings

Vagrant Scotchbox Setup and Settings

Links zum Nachschauen

Scotch Box

WPDistillery

Vagrant::Hostsupdater

How To Change Your PHP Settings on Ubuntu 14.04

Nur Scotch-Box alleine (für statische Webseite)

Projektverzeichnis anlegen, und im Verzeichnis:

git clone https://github.com/scotch-io/scotch-box.git .

Jetzt im Vagrantfile die IP anpassen (Standard: 192.168.33.10) - je nach Anzahl der Webseiten, die in Bearbeitung sind. Die IP-Adressen dürfen nicht kollidieren.

Eventuell noch rm -rf .git, falls ein eigenes Repository genutzt werden soll.

Jetzt noch vagrant up und es geht los.

Danach ist sie über http://192.168.33.10 oder http://scotchbox im Browser aufzurufen. Mit vagrant ssh kann man mit dem Terminal in die Box gehen und Dateien anlegen, löschen, ändern usw. Das ist ein gespiegeltes Verzeichnis, sodass man auch mit dem Finder lokal auf die Daten zugreifen kann.

Scotch-Box mit WordPress

Projektverzeichnis anlegen, und im Verzeichnis den zusammengefassten Befehl eingeben:

git clone https://github.com/scotch-io/scotch-box.git && mv scotch-box/public public && mv scotch-box/Vagrantfile Vagrantfile && rm -rf scotch-box && git clone --depth 1 https://github.com/flurinduerst/WPDistillery.git && mv WPDistillery/config.yml config.yml && mv WPDistillery/setup.sh setup.sh && rm -rf WPDistillery

Hier nochmal die einzelnen Befehle in der Übersicht:

git clone https://github.com/scotch-io/scotch-box.git
mv scotch-box/public public
mv scotch-box/Vagrantfile Vagrantfile
rm -rf scotch-box
git clone --depth 1 https://github.com/flurinduerst/WPDistillery.git
mv WPDistillery/config.yml config.yml
mv WPDistillery/setup.sh setup.sh
rm -rf WPDistillery

Jetzt noch die eigene config.yml verwenden:

rm -f config.yml && cp ~/Sites/config.eigene.scotchbox.yml config.yml

Im Vagrantfile jetzt die URL (Standard ist http://192.168.33.10) um z. B. einen Wert erhöhen (192.168.33.11), damit sie nicht mit bereits bestehenden Boxen kollidiert. Wenn z. B. 3 Webseiten gleichzeitig in Bearbeitung sind, wurden vermutlich auch 3 Vagrant-Boxen erstellt. In solchen Fällen müssen sich natürlich die URLs unterscheiden, da sie sonst im Hostfile mehrfach vorkommen und nicht richtig aufgelöst werden können. BeispieL: Ist die 192.168.33.10 für jedes der 3 Projekte vergeben, wird der Browser immer auf den ersten Eintrag referenzieren (selbst wenn die Domain wie z. B. http://example3.com eingegeben wurde, da die ja dieselbe IP-Adresse hat wie die anderen Webseiten und erst danach im Hostfile aufgeführt werden).

Jetzt noch im Vagrantfile die Variable für den Hostnamen config.vm.hostname="hostname" (z. B. example1.local) anpassen und in der config.yml die gewünschten Daten. WICHTIG: Die URL in den wpsettings: muss mit der URL im Vagrantfile übereinstimmen! Wenn die Hosts-Datei nach einem Suspend oder Halt nicht geändert werden soll, wird dies noch eingefügt: config.hostsupdater.remove_on_suspend = false.

Auf geht's

Vagrant starten und SSH:

vagrant up && vagrant ssh

In der Box nach SSH:

sudo locale-gen de_DE.UTF-8
sudo wp cli update --allow-root
cd /var/www && bash setup.sh

Danach ist die WordPress-Seite über die im Vagrantfile und config.yml eingestellte URL erreichbar (oder auch http://192.168.33.10)

Falls noch nicht gemacht

Allow passwordless startup of Vagrant with vagrant-hostsupdater. Dazu im lokalen Verzeichnis eingeben:

sudo visudo

und die Zeilen

Cmnd_Alias VAGRANT_HOSTS_ADD = /bin/sh -c echo "*" >> /etc/hosts
Cmnd_Alias VAGRANT_HOSTS_REMOVE = /bin/env sed -i -e /*/ d /etc/hosts
%admin ALL=(root) NOPASSWD: VAGRANT_HOSTS_ADD, VAGRANT_HOSTS_REMOVE

einfügen.

Wenn bei der Plugin-Installation die Fehlermeldung upload_max_filesize kommt

Nach vagrant ssh am besten gleich anlegen: sudo nano /var/www/public/info.php.

Inhalt:

<?php
phpinfo();
?>

Dann http://www.example.com/info.php aufrufen und die Werte ablesen. Meistens ist upload_max_filesize sehr niedrig eingestellt (in unserem Beispiel hier sind es 2MB).

Die zu ändernde Datei befindet sich hier: sudo nano /etc/php5/apache2/php.ini. In der Datei suchen wir die Einträge post_max_size und upload_max_filesize und stellen sie jeweils auf 30M ein. Bei der Gelegenheit kann auch memory_limit = 128M eingestellt werden und max_execution_time = 30. Danach wird der Apache neu gestartet: sudo service apache2 restart.

Zur Information kann jetzt die http://www.example.com/info.php nochmal aufgerufen werden und die eingestellten Werte sollten dort drinstehen.