PHP, PEAR, Node.js und ANT unter Windows installieren

Wider die Natur gibt es Programmierer, die unter Windows arbeiten. Damit auch diese leidgeprüften Kreaturen in den Genuss automatisierter Build-Prozesse bzw. der entsprechenden Tools zur Quality Assurance (für PHP, CSS und JavaScript) kommen, habe ich hier mal die Schritte zusammengefasst, mit denen ich die Ant-Builds unter Windows XP und Windows 7 lauffähig bekommen habe. Unsere Builds basieren auf dem „Template for Jenkins Jobs for PHP Projects“ von Sebastian Bergmann. Damit unser Jenkins CI Server auch CSS und JavaScript prüfen kann, haben wir das Template noch um CSSLint und JSHint erweitert.

Die Anleitung wurde unter Windows XP und Windows 7 in der jeweiligen 32-Bit-Version getestet, bei 64-Bit-Installationen müssen entsprechend andere Pakete ausgewählt werden.

1. Die Grundlage: Git und die Git-Bash

Klar: Ohne Git läuft grad mal gar nichts! Aber auch die Git-Bash ist ein wichtiger Bestandteil, denn basierend auf MinGW und MSYS stellt es – ähnlich wie Cygwin – eine POSIX-Umgebung unter Windows zur Verfügung. Alle hier genannten Kommandozeilen-Befehle werden also in der Git-Bash ausgeführt. Zunächst wird die aktuellste Version von Git heruntergeladen:

2. PHP v5.4 mittels XAMPP

Für den Build-Prozess wird von XAMPP eigentlich nur PHP benötigt, deswegen könnte man evtl. auch direkt PHP for Windows installieren. Da es aber durchaus sinnvoll ist, den gesamten Stack lokal zur Verfügung zu haben – um eben auch lokal entwickeln zu können – habe ich hierfür nur diesen Weg ausprobiert, wobei es neben XAMPP auch noch einige weitere freie Alternativen gibt.

3. JDK: Java Development Kit als Voraussetzung für Ant

Ant ist ein Java-Programm, dass ein paar Abhängigkeiten von JDK hat. Je nach Windows-Version muss/kann man sich Version v7 (Windows 7) oder Version v6 (Windows XP) installieren.

4. WinAnt: Ant für Windows

Erst nachdem das entsprechende JDK heruntergeladen und installiert wurde, kann die Installation von Ant beginnen, denn im Installation-Prozess muss der Pfad zum JDK angegeben werden.

5. Node.js und der Paket-Manager NPM

Mittels NPM, also den Node Packaged Modules, die zum Lieferumfang von Node.js gehören, können später CSSLint und JSHint installiert werden.

6. PEAR unter Windows installieren

Das bei XAMPP mitgelieferte PEAR wollte einfach nicht richtig funktionieren, insbesondere die per PEAR installierten Pakete wie PHPUnit oder PHPCS gaben nur Fehler aus oder konnten gar nicht erst gefunden werden. Deswegen habe ich per go-pear.phar das vorhandene PEAR überschrieben. Wie eingangs erwähnt, wird dazu die Git-Bash geöffnet.

Die Schritte sind Folgende:

  1. in das PHP-Verzeichnis der XAMPP-Installation wechseln (sofern der Installationspfad nicht geändert wurde, ist dies C:\xampp\php)
  2. Installationsskript herunterladen und ausführen
  3. PEAR für das gesamte System installieren
  4. die Pfade prüfen (alle Verzeichnisse sollten innerhalb des PHP-Installationspfads liegen, also bspw. C:\xampp\php
  5. ist ein Pfad nicht korrekt – die pear.ini sollte immer im Windows-Verzeichnis abgelegt werden – die entsprechende Ziffer wählen und den korrigierten Pfad mithilfe des Präfix eingeben, bspw. $prefix\pear.ini
  6. damit die PEAR.bat auch in der Git-Bash ausgeführt werden kann, muss in der .bashrc ein alias angelegt werden
cd /c/xampp/php
curl -O http://pear.php.net/go-pear.phar
php go-pear.phar
# 1. für das gesamte System installieren, also mit Eingabetaste bestätigen
# 2. Pfade prüfen und gegebenenfalls korrigieren
#    ACHTUNG! Bitte insbesondere Punkt 11, den Pfad zur perar.ini prüfen und korrigieren:
#      $prefix\pear.ini
echo "alias pear='cmd //c /C/xampp/php/pear'" >> ~/.bashrc

Danach muss – wie vom Installationsskript empfohlen, die folgende Datei ausgeführt werden, die einige Umgebungsvariablen in der Registry hinterlegt:

C:\xampp\php\PEAR_ENV.reg

Damit die Umgebungsvariablen auch garantiert überall ankommen, empfiehlt sich an dieser Stelle ein für Windows obligatorischer Neustart.

7. PHPQA-Tools per PEAR und CSSLint und JSHint per NPM installieren

Das „Template for Jenkins Jobs for PHP Projects“ greift zur Erstellung der API-Dokumentation auf phpDox zurück – das kam allerdings nicht mit allen Projekten zurecht. Deswegen greifen wir auf die Neuauflage des phpDocumentors zurück – zur Zeit ist die Version v2 allerdings noch im Alpha-Status. Dazu müssen lediglich folgende Zeilen in der Git-Bash ausgeführt werden:

pear config-set auto_discover 1
pear install --alldeps pear.phpqatools.org/phpqatools pear.netpirates.net/phpDox-alpha pear.phpdoc.org/phpDocumentor-alpha

Nachdem das abgeschlossen ist, fehlen nur noch CSSLint und JSHint:

npm -g install csslint jshint

Glückwunsch, es stehen jetzt (hoffentlich!) alle Tools zur PHP-, CSS- und JavaScript-Code-Qualitätssicherung zur Verfügung. Hurra!

Schlussbemerkung

Fassen wir zusammen: Es ist kompliziert! Und es dauert. Lange. Aber es funktioniert. Optimal ist diese Variante allerdings nicht, zumal die Ant-Files für Windows noch mal speziell angepasst werden mussten – mehr dazu vielleicht ein anderes mal. Ich denke, VMs per VirtualBox und Vagrant werden die flüssigere Alternative sein. Es bleibt noch viel zu tun… 😉