Vor einer ganzen Weile berichtete ich über den PaaS-Anbieter Heroku, der sein Portfolio an Programmiersprachen mittlerweile deutlich erweitert hat. Bis vor nicht allzu langer Zeit fehlte aber noch ein vergleichbarer Anbieter für das Deployment von PHP-Anwendungen. Verwunderlich gerade deswegen, weil PHP nach wie vor zu den beliebtesten Programmiersprachen im weltweiten Netz gehört und einige sehr bekannte Systeme in PHP entwickelt wurden.
Diese Lücke füllt nun der Anbieter PHP Fog, welcher, genau wie Heroku auf das Deployment von Anwendungen über das Versionierungstool Git setzt. Das verspricht eine äußerst einfache Handhabung und ist deutlich zeitgemäßer als das sonst übliche Deployment über FTP. Allein schon in Sachen Geschwindigkeit steckt Git die Datenübertragung via FTP locker in die Tasche. Vor einiger Zeit meldete ich mich dann bei PHP Fog an und begann, ein wenig zu experimentieren. Vorbildlich ist, dass man gängige PHP-Anwendungen per One-Click-Installer installieren kann. Dazu gehört unter anderem auch das äußerst beliebte CMS WordPress. In der Anfangsphase aber war eine bei PHP Fog abgelegte WordPress-Installation aber nahezu unbrauchbar, da man keine beschreibbaren Verzeichnisse einrichten konnte und somit viele Funktionen von WordPress nicht nutzbar waren. Updates scheiterten, die Installation von Plugins oder der Upload von Dateien war unmöglich. Der einzige Ausweg war, die WordPress-Installation lokal zu warten und die Änderungen per Git zu deployen. Problematisch war aber natürlich hier, dass Einträge in der lokalen Datenbank nicht auf der Infrastruktur von PHP Fog landeten. Die Anfangsphase war kurzum ziemlich enttäuschend. Ständige Downtimes und ein erfolgreicher, groß angelegter Hackerangriff trübten den Ersteindruck weiter. Mittlerweile ist der Service deutlich gereift und die oben genannten Kritikpunkte sind allesamt eliminiert worden. Dennoch reicht der Bedienungskomfort leider nach wie vor nicht an den von Heroku ran. Lokale Änderungen an Theme-Dateien bspw. kann man leider nicht zurück auf den eigenen Rechner bekommen, da die Versionierung nur in eine Richtung funktioniert. Gleiches gilt für hochgeladene Dateien, beispielsweise Fotos. Diese nachträglich auf den eigenen Rechner zu bekommen, bspw. um einen Anbieterwechsel durchzuführen ist nicht möglich, wenigstens nicht ohne Umwege über WordPress-Plugins, die das erlauben. Dieser Nachteil existiert natürlich auch bei Heroku, nur bringt jede Rails-basierte Anwendung einen integrierten Webserver mit und verfügt im Regelfall über mehrere Datenbanken (Production, Development, Test), sodass man Änderungen an der Anwendungsstruktur ohne Probleme lokal vornehmen und auch gleich testen kann. Die Schuld ist hier also nicht bei PHP Fog zu suchen, sondern vielmehr bei der Struktur von PHP-Anwendungen. Ohne eine lokale Installation eines Webservers und einer MySQL-Datenbank ist eine solche Arbeitsweise nicht möglich. In Sachen Simplizität schlägt Rails hier PHP ganz bequem. Die Idee, das Deployment von PHP-Anwendungen über das effiziente und einfach zu bedienende Git vorzunehmen ist gut, leider scheitert die Benutzbarkeit in der Praxis an dem doch recht angestaubten Konzept von PHP-Anwendungen. Heroku verbietet das Schreiben in das Dateisystem des Anbieters einfach, um genau solchen Problemen vorzubeugen. Rails-Anwendungen spielen da im Regelfall auch problemfrei mit, und man bindet Storage über Services wie Amazons S3 an. Bei PHP Fog ist das Schreiben ins Dateisystem (leider) ohne weiteres möglich. Dortige Änderungen lassen sich aber nicht reflektieren. Meine Idee wäre, dass man im Backend von PHP Fog einen Button finden sollte, der auf der entfernten Maschine eine git add .; git commit ‑am ‘Kommentar’ ausführt und man dann mittels git pull die Änderungen auf seine eigene Maschine bekommt. Ich werde wohl mal ein Support-Ticket einreichen …