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.
Vagrant ¶
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 ¶
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.