Vagrant Scotchbox Setup and Settings
How To Change Your PHP Settings on Ubuntu 14.04
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.
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
.
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)
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.
upload_max_filesize
kommtNach 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.