AMP – Setup unter Windows, Update von Teil 1

Mein Windows System ist jetzt ein Windows 7 Ultimate 64bit. Also gibt es hier ein Update vom Teil 1 um auch die 64bit (x64) – Versionen zu installieren.

Beginnen werde ich wieder (ja, ok, die restlichen HOWTOs fehlten eh noch) mit dem Apache. Mögliche Binary-Pakete finden wir bei blackdot.be oder apachehaus.com . Ich entscheide mich für letztere, da diese wieder mit dem VS 2008 compiliert wurde.

Kurz gefasst:

  1. Visual C++ 2008 SP1 Redistributable: 64bit Version
  2. Apache von apachehaus.com entpacken
  3. Dieser Apache ist vorkonfiguriert für die Default-Location [c:]/Apache22. Näheres siehe oben bzw. im mitgelieferten Readme.
  4. Start und Installation wie oben (oder siehe ebenfalls das Readme).

Et voila!

AMP – Setup unter Windows, Teil 1: Apache

Da ich auch durch Trainings immer wieder mit der Situation PHP-Entwicklung unter Windows konfrontiert werde – persönlich entwickle ich natürlich lieber unter Linux -, fasse ich (auch als eigene Gedankenstütze) die Installation eines PHP-Developmentstacks zusammen – und zwar nicht als Komplettpaket sondern einzeln. Dabei lernt man/ich auch immer wieder etwas über die Konfiguration.

Der Webserver

Am A in AMP erkennt man meine Entscheidung: Apache
Der einfachste Grund liegt bei mir beim Hosten: ich habe keinen Windows Server.

Da wir später ein PHP dazupacken, bevorzuge ich den ApacheLounge-Build (unter Downloads zufinden). Dieser Build ist oft sogar schneller da als der offizielle Apache Software Foundation Windows-Build. Und im Gegensatz zu diesem mit einem Visual Studio 2008 kompiliert gegen ein aktuelles Windows SDK. Das bringt Vorteile in Richtung Geschwindigkeit, Memory Management und Stabilität (laut Website). Auf jeden Fall erlaubt es uns später auch den VC9-Build von PHP zu wählen.

Desweiteren installieren wir hier manuell aus einem Zip heraus. Problemlos ist also auch eine Installation auf einen Stick oä möglich. Und ich kann den kompletten Setup auch einfacher zum Kunden mitnehmen.

Zur Installation

  1. Visual C++ 2008 SP1 Redistributable
    Diese Installation ist zunächst zwingend vorher durchzuführen. Download hier
  2. Apache entpacken
    Zip-File von apachelounge.com (siehe oben) entpacken. Zum Beispiel direkt nach c: oder einen belibigen anderen Ort.
  3. Apache konfigurieren
    In der Datei /Apache2/conf/httpd.conf folgende Einstellungen vornehmen (Nachlesbar mit Zeilennummern unter Install Apache on Windows ):
    – ServerRoot anpassen, falls ein anderer Ort als c: gewählt wurde. Ebenso mit dem ScriptAlias und der folgenden Directory-Direktive verfahren. Das DocumentRoot-Verzeichnis lege ich an einen ganz anderen Ort außerhalb der Installation. Also auch dieses gebenenfalls anpassen (und wiederum die entsprechende Directory-Direktive).
    – Rewrite-Module laden
    – ServerName konfigurieren (localhost:80)
    – Im Web-Root AllowOverride All setzen (von None)
  4. Testen
    cd Apache2bin
    httpd -t
  5. Installation als Dienst
    httpd -k install
    Mit dem ApacheMonitor (ebenfalls im bin-Ordner) lässt sich der Dienst bequem steuern.

Apache proxying

Nachdem ich im letzten Beitrag die Rails-Anwendung aufgesetzt habe, geht es nun daran, die “hässliche” Url mit der Portnummer 3000 los zu werden. Natürlich könnten wir jetzt versuchen, den Apache FCGI “sprechen” zu lassen. Ich entscheide mich aber lieber für eine Proxying-Lösung, mit dem Hintergrund den Blog on Rails sowie in Zukunft weitere (insbesondere FCGI-) Anwendungen vom lighttpd servieren zu lassen. Zwei Bemerkungen noch bevor es aber an die Installation des Lighty geht: zum einen verschieben wir das Anwendungsverzeichnis an einen passenderen Ort bzw. erstellen es neu (Vorschlag: ein Verzeichnis parallel zum htdocs-Verzeichnis; ich selbst gehe noch einen Schritt weiter und erstelle an dieser Position ein rails-Verzeichnis, in dass ich die zukünftigen Rails-Anwendungen packe) und des weiteren ersetzen wir erst mal unseren WEBrick durch den schnelleren Mongrel: gem install mongrel und wie gehabt starten mit ruby script/server im Rails-Anwendungsverzeichnis.

Nun zur Proxy-Konfiguration:

  1. Apache-Module
    Wir benötigen zwei Module: proxy und proxy_http, die wir einfach beide mit a2enmod proxy_http einschalten. Die Debian conf-Dateien sind in Ordnung; es sollte mindestens ProxyRequests Off eingestellt sein, das aber auch Standard ist.
  2. Konfiguration
    Die Apache-Direktiven, die wir anpassen müssen, sind der Proxy-Tag und ProxyPass-Direktiven wie dort im Beispiel zu sehen. Die Cookie-Geschichte können wir erst mal vernachlässigen, wichtig ist natürlich aber das Ziel des ProxyPass: unsere URL http://servername.com:3000/ . Nicht vergessen an der Stelle: Einen Directory-Tag erstellen, der den Zugriff erlaubt. Alle Direktiven wandern entweder in die globale Server-Konfiguration oder in einen VirtualHost.

Apache neu starten/laden und ab geht es unter Blog on Rails