Lego2012
12/22/2016 - 4:07 PM

Vagrant VCCW Setup and Settings

Vagrant VCCW Setup and Settings

Links zum Nachschauen

VCCW

Vagrant::Hostsupdater

How To Change Your PHP Settings on Ubuntu 14.04

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

Falls noch nicht gemacht: Install the vagrant-hostsupdater plugin. (Optional):

vagrant plugin install vagrant-hostsupdater

Dann:

vagrant box add vccw-team/xenial64

Dass muss nur einmal gemacht werden, da die Box dann lokal für spätere Verwendung gespeichert wird.

Projektverzeichnis anlegen und eine dieser beiden Dateien darin im Stammverzeichnis entpacken (kein Unterordner erlaubt):

VCCW-Datei (zip)

VCCW-Datei (tar.gz)

Dann:

vagrant up

Die Standard-WordPress-Installation kann jetzt im Browser mit http://vccw.dev/ oder http://192.168.33.10/ angesehen werden.

VCCW-Box mit WordPress

Das Tool legt folgende Umgebungen an:

WordPress

Standardbenutzer

Benutzername: `admin`

Passwort: `admin`

MySQL

MySQL Host: 127.0.0.1

Benutzername: wordpress oder root

Passwort: wordpress

Port: 3306

SSH

Host: vccw.dev oder 192.168.33.10

Benutzername: vagrant

Passwort: vagrant

Port: 22

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.

Individuelle Anpassungen

VCCW ist konfiguriert, um WordPress Plugins, Themes oder Webseiten zu entwickeln. Es enthält viele anpassbare Variablen für die WordPress-Version (oder Beta Release), Sprache, Hostname, Unterverzeichnis, Administrative Referenzen, Standard-Plugins, Standard-Theme, Multisite, SSL und andere Optionen.

Kopiere die Standardkonfiguration in das Stammverzeichnis: cp provision/default.yml site.yml

Hier ist eine Musterdatei site.muster.yml: /Users/leo/Sites/vccwboxen/site.muster.yml

Dann ändere die site.yml und starte vagrant up.

Globale Konfiguration

VCCW hat eine Reihe von globalen Parametern, die alle mit virtuellen Maschinen funktionieren.

Sie können in der Datei ~/.vccw/config.yml spezifiziert werden:

memory: 1024
cpus: 2
theme_unit_test: true

Anpassbare Variable

Pre/Post Provisioning Scripts starten

Beispiel Script

Shell Scripte können hinterlegt werden, die dann vor und nach dem Provisiong ausgeführt werden.

#!/usr/bin/env bash
set -ex
/usr/local/bin/wp --path=/var/www/wordpress plugin install contact-form-7 --activate

Dieses Script installiert und aktiviert das Plugin "Contact Form 7" mit WP-CLI.

Anpassen mit Ansible

Ansible kann auch genutzt werden.

provision-post.yml startet nach dem Provisioning.

- hosts: all
  become: yes

  tasks:

  - name: Ensure nginx is installed
    apt: pkg=nginx state=latest

Email mit MailCatcher checken

MailCatcher leitet alle WordPress-Emails zu MailCatcher um:

Besuche dazu http://vccw.dev:1080/ (oder eine andere individuelle Domain)

Änderungen

Wichtig für individuelle Anpassungen

Im Vagrantfile die URL (Standard ist http://192.168.33.10) für jede Box 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 der Hostsdatei referenzieren (selbst wenn die Domain wie z. B. http://example3.com eingegeben wurde, da aber dieselbe IP-Adresse wie die anderen Webseiten hat, aber erst danach im Hostfile aufgeführt wird).

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.

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/php/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.