PHP Entwicklung mit Vagrant und NetBeans


Für die Entwicklung von PHP-Anwendung verwende ich unter anderem NetBeans und einen virtuellen Web-Server, den ich mit Vagrant erstelle.

Vagrant ist eine Open-Source-Software für die Erstellung und Verwaltung von virtuellen Maschinen. Dabei steuert das sogenannte Vagrantfile, welche Basis-VM (Box) geklont werden soll, wie die Konfiguration der VM aussieht und ob ein Provisioner für die Konfiguration des Gast-Betriebssystems ausgeführt werden soll. Über die Konsole kann die virtuelle Maschine dann gesteuert werden.

Mein Vagrantfile sieht so aus:

VAGRANTFILE_API_VERSION = "2"
 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "precise32"
 
  config.vm.provision :shell, :path => "bootstrap.sh"
  config.vm.network :forwarded_port, host: 4567, guest: 80
end

precise32 ist der Name der VM-Vorlage, die verwendet werden soll. Der virtuelle Server ist über die URL 127.0.0.1:4567 erreichbar.

Die Konfiguration der VM wird über ein Shellscript mit dem Namen bootstrap.sh erstellt. Die Datei sieht so aus:

#!/usr/bin/env bash
 
apt-get update
 
# Install apache
apt-get install -y apache2 
rm -rf /var/www
ln -fs /vagrant /var/www
 
# Install php
apt-get install -y php5
 
# Install xdebug
apt-get install -y php5-xdebug
cat << EOT >> /etc/php5/apache2/conf.d/xdebug.ini
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=10.0.2.2
xdebug.remote_handler=dbgp
xdebug.remote_port=9001
xdebug.idekey="netbeans-xdebug"
EOT
 
/etc/init.d/apache2 restart

In meiner Installation hat der Host die IP-Adresse 10.0.2.2. Diese wird für Xdebug konfiguriert, damit der virtuelle Server die Debug-Session zum Client aufbauen kann.

NetBeans in der Version 7.4, die ich installiert habe, lauscht für die Debug-Session zwar auf Port 9000, aber nur mit IPv6. Deshalb habe ich den Parameter -J-Djava.net.preferIPv4Stack=true bei den netbeans_default_options in meiner netbeans.conf angehängt. Nach einem Neustart von NetBeans, lauscht die IDE jetzt auf IPv4. (Die netbeans.conf findest du im Ordner etc deiner NetBeans-Installation)

In den Projektoptionen trägst du in der Section Run Configuration in der Eigenschaft Project URL den Wert 127.0.0.1 ein.

Durch das NetBeans-Plugin Vagrant kannst du die Vagrant-Befehle direkt aus der IDE aufrufen.