Phalcon: Phalcon mit Vagrant und Virtualbox auf OS X

Hier beschreibe ich kurz wie man den Phalcon in einer Vagrantbox unter Max OS X zum fliegen bekommt. Im ersten Schritt müssen Virtualbox und Vagrant installieren werden.

Dann legt man sich einen Ordner an in dem man die Vagrantbox starten will, z.B. /Users/MEINUSERNAME/Vagrant/phalcon/.

Anschließend in diesen Ordner wechseln und folgende Zeile von der Phalcon Seite eingeben:

vagrant init phalconbox https://s3-eu-west-1.amazonaws.com/phalcon/phalcon125-apache2-php54-mysql55.box

Nach diesem Befehlt ist in dem Ordner eine Datei „Vagrantfile“ zu finden. In dieser muss diese Zeile einkommentiert werden.

config.vm.network "forwarded_port", guest: 80, host: 8080

Wer noch weiter in Vagrant abtauchen will kann hier noch weitere Einstellungen vornehmen. Dazu aber später noch mehr. Nun starten wir die VM mit:

vagrant up

Beim ersten Aufruf kann dies ein wenig länger dauern da die VM komplett neu installiert wird. Aktuell wird Ubuntu 12.04, Apache 2.2, Phalcon 1.2.5, PHP 5.4.23, MySQL 5.5 dort installiert.

Am Ende sollte nun dies in der Konsole zu sehen sein.

==> default: Machine booted and ready!

Gibt man nun im Terminal vagrant ssh ein ist man per ssh auf der Konsole in der VM angemeldet. Im Browser ist die VM unter http://localhost:8080 zu erreichen. Wenn dies auf Anhieb klappt kann der nächste Befehl übersprungen werden, falls die Seite nicht erreichbar ist muss dieser ausgeführt werden um die Firewall für Vagrant freizuschalten.

sudo ipfw add 80 fwd 127.0.0.1,8080 tcp from any to me 80

Nach der Eingabe von http://localhost:8080/info.php sollte die Liste von phpinfo() erscheinen. Desweiteren sind noch zwei weitere kleine Demo Applikationen in /var/www zu finden.

phalcon-localhost-8080

Wichtig ist auch dass der aktuelle Ordner in dem die Vagrant VM gestartet wurde, ein Shared Folder ist der  in der VM unter dem Ordner vagrant im Rootverzeichnis liegt. Als letztes Schmankerl könnte man im Vagrantfile den Sharedfolder auf /var/www konfigurieren. Die Dateien können lokal am Host bearbeitet werden. In der VM liegen diese in /var/www und werden vom Webserver ausgeliefert. Im Vagrantfile kann dies wie folgt aussehen:

  config.vm.synced_folder "./", "/var/www"

Anbei ein kleiner Beweisscreenshot dass es funktioniert. Die Ausgabe ist die gleiche wie im Screenshot oberhalb.

vagrant-shared-folder-var-www

Mit vagrant suspend kann die VM beendet und mit vagrant reload  neu gestartet werden.

Mit Vagrant stehen sicher noch weitere Möglichkeiten zur Verfügung, aber fürs erste sollte dieses Setup als Entwicklungsumgebung für Phalcon unter OS X ausreichen.