PHP Entwicklung mit Vagrant und NetBeans

30.03.2014
, getagged mit PHP, Vagrant

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.

Violetta, 22.07.2015, 21:25:
Hi, I'm the docs writer for NetBeans IDE for PHP. I wanetd to let you know that I'm in the process of changing the PHP setup tutorial for Mac to use MAMP instead of XAMP, as XAMP for Mac is still a beta. Xdebug works with MAMP, too. However, if XAMPP is working for you, no need to change!
Ronny, 08.11.2014, 22:52:
Super! Der Tipp den Host via Gateway-IP als remote_host zu adressieren hat mein Debugging-Workflow wieder zum Fliegen gebracht. Danke dafür!
Kommentar hinzufügen

* - Pflichtfeld

*




*