In Managed Hosting Umgebungen ist es manchmal nicht ganz so einfach, ein komplexes PHP Framework wie FLOW3 zu installieren und zu nutzen. Der Vorteil von Managed Hosting ist, dass man sich nicht um die Administration und Wartung des Servers kümmern muss. Damit der Server für den Hoster aber wartbar bleibt, muss er die Rechte des Benutzers einschränken. So ist in den meisten Fällen kein direkter Zugriff auf die Konfiguration des Webservers und von PHP möglich.
Am Beispiel eines Managed Servers bei domainfactory will ich in diesem Artikel zeigen, wie es funktionieren kann.
Vorüberlegungen
Als erstes müssen die Systemvoraussetzungen und die Möglichkeiten des Hosting Pakets geprüft werden. FLOW3 stellt folgende Mindestanforderungen:
- Webserver (Apache mit aktiviertem mod_rewrite Modul wird empfohlen)
- PHP 5.3.2 oder höher (mit den Einstellungen memory_limit >= 128M und magic_quotes_gpc = Off)
- Zugriff auf die Kommandozeile (Shell mit SSH Zugang)
- Eine PDO kompatible Datenbank wie z.B. MySQL
Der Webserver dürfte in den wenigsten Fällen ein Problem darstellen, da nahezu alle Hoster auf Apache setzen und mod_rewrite in den meisten Fällen aktiviert ist. Allerdings muss der Hoster es erlauben, den Document Root für eine (Sub-)Domain frei zu setzen.
Schwieriger wird es bei der PHP Version. Noch nicht jeder Hoster bietet seinen Kunden PHP 5.3 an obwohl es PHP 5.3 jetzt schon seit einiger Zeit in einer stabilen Version gibt.
Nach diesen Vorüberlegungen kann jetzt mit der eigentlichen Installation von FLOW3 gestartet werden.
Download von FLOW
Nach dem Download wird FLOW3 auf dem Webserver entpackt. Am schnellsten geht das über die Shell:
wget http://sourceforge.net/projects/flow3/files/FLOW3/1.0.0/FLOW3-1.0.0.tar.bz2/download -O FLOW3-1.0.0.tar.bz2
tar xjf FLOW3-1.0.0.tar.bz2
Man erhält dann folgende Dateistruktur:
Dateirechte setzen
Das Quickstart Tutorial von FLOW3 schlägt als nächsten Schritt die Anpassung der Dateirechte vor.
In Managed Hosting Umgebungen wird das in der Regel nicht funktionieren, da man keine root Rechte hat und den sudo Befehl nicht nutzen kann.
Bei domainfactory laufen der SSH User und der Webserver unter der gleichen Benutzergruppe, wodurch das Anpassen der Dateirechte in diesem Fall entfallen kann.
Einstellungen über das Kundenmenü
Danach wird der Document Root der (Sub-)Domain auf das Unterverzeichnis Web gesetzt. Bei domainfactory können über das Kundenmenü auch die PHP Version eingestellt sowie PHP.ini Einstellungen verändert werden. Wie schon oben geschrieben sollte das memory_limit auf einen Wert größer 128M gesetzt und magic_quotes_gpc deaktiviert werden. Als PHP Version sollte 5-53LATEST-STANDARD (derzeit v5.3.8) genommen werden.
Zurück auf der Shell
Da domainfactory zum einen mehrere verschiedene PHP Versionen anbieten und zum zweiten auch einen anderen Pfad nutzt, ist eine kleine Anpassung des FLOW3 Shellscripts nötig.
Die erste Zeile in der Datei flow3 muss gegen diese ausgetauscht werden:
#!/usr/local/bin/php5-53LATEST-CLI
Als nächstes muss im Verzeichnis Configuration die Datei Settings.yaml.example nach Settings.yaml kopiert werden. In der Datei werden dann die letzten beiden Zeilen („core:“ und „phpBinaryPathAndFilename“) einkommentiert. phpBinaryPathAndFilename wird dann auf „/usr/local/bin/php5-53LATEST-CLI“ gesetzt.
Möglicherweise erhält man später beim Aufruf von FLOW3 über die Shell diese Fehlermeldung:
FLOW3 requires the PHP setting "magic_quotes_gpc" set to Off. (Error #1224003190)
Bei meinen Tests hatte ich dieses Problem. Nach Rückspsrache mit dem domainfactory Support konnte das Problem aber gelöst werden, da magic_quotes_gpc in der neuesten PHP Version bei domainfactory gar nicht mehr enthalten ist, die PHP.ini dies aber behauptet. Die entsprechende Konfigurationsänderung sollte aber jetzt bei allen domainfactory Kunden greifen, so dass es nicht mehr zu dieser Fehlermeldung kommt.
Falls doch, kann man sich mit diesem Workaround behelfen: An den beiden oben genannten Stellen, wo der Pfad zu PHP geändert wird, trägt man folgendes ein:
/usr/local/bin/php5-53LATEST-CLI -d magic_quotes_gpc=Off
Damit wird magic_quotes_gpc explizit abgeschaltet.
Erste Tests
Wenn man alle genannten Schritte ausgeführt hat, kann man FLOW3 das erste Mal über die Shell aufrufen:
./flow3 help
Achtung: der erste Aufruf kann einige Zeit dauern!
Dafür wird man dann mit diesem Ergebnis belohnt:
Danach kann das erste Package mit dem Kickstarter angelegt werden:
./flow3 kickstart:package MyCompany.MyPackage
FLOW3 im Browser
Beim Aufruf von FLOW 3 über den Browser sollte dann diese Seite angezeigt werden:
Nachdem jetzt alle Hürden der Installation von FLOW3 hoffentlich genommen sind, kann man mit der Programmierung des ersten eigenen FLOW3 Pakets starten.
FLOW3 bei anderen Providern
Die Firma jweiland.net bietet ein angepasstes FLOW3 Paket und eine Kurzanleitung an. Auch Mittwald bietet FLOW3 Hosting an. FLOW3 kann über den Softwaremanager (Bereich Frameworks) installiert werden.
Fazit
Mit ein wenig Handarbeit und wenn die Provider PHP 5.3 unterstützen lässt sich FLOW3 auch in Managed Hosting Umgebungen nutzen.
Mich würde jetzt interessieren, welche Erfahrungen ihr bei der Installation und Nutzung von FLOW3 in Managed Hosting Umgebungen gemacht habt. Über Feedback und eure Kommentare freue ich mich.