Eine Laravel 5.x Anwendung in einer Azure WebApp betreiben

By | 18. Juni 2017

Ihr habt es sicherlich bemerkt, im Geek Pub herrscht gerade einwenig Stille. Das kommt hauptsächlich durch den Wechsel meines Arbeitgebers, nach 20 Jahren in einem Energie-Konzern hat es mich in ein kleineres „StartUP“ verschlagen (ZENNER IoT Solutions), was doch auch etwas Freizeit kostet im Moment (was aber auch vollkommen OK ist).

Dort haben wir das Glück, am Microsoft BizSpark Programm partizipieren zu dürfen, was bedeutet einige Ressourcen, wie zum Beispiel Microsofts Azure Cloud testen zu können. Nun war die Aufgabe eine PHP Anwendung auf Basis des Laravel 5.4 Frameworks auf eine Web-App von Microsoft zu bringen. Microsoft WebApps sind ihr PaaS Angebot wenn es um das Hosting von .. Überraschung: Web Anwendungen geht.

Die Basis von den WebApps ist ein iiS Server, was die ganze Geschichte halt komplizierter macht, als auf dem 08/15 Apache mit PHP.. ist der iiS doch besser für Microsoft’s Sprachen wie ASP.NET etc. geeignet. Naja aber es gibt ja bekanntlich nix was nicht geht, daher hier mal einige Kniffe wie ihr auch eure Laravel Anwendung bei Microsoft betreiben könnt (Spoiler: Das läuft sehr gut, wenn es mal läuft!).

Gehen wir mal davon aus, dass deine Anwendung fertig ist, sich bei dir auf deinem Rechner befindet und du schon eine Azure WebApp eingerichtet hast (das ist trivial). Nun gilt es hier einige Vorbereitungen zutreffen.

PHP Einstellung der Azure WebApp

Beginnen wir damit unserer WebApp eine aktuelle PHP Version zu verschaffen, erfreulicherweise unterstützt Microsoft PHP 7.1, was wir auch gleich in den Applications – Settings auswählen.

Konfiguration der Azure WebApp für Laravel

Weiter auf der gleichen Seite, hier müssen ein paar Variablen gesetzt werden damit Azure mit Laravel spielt.

1. SCM_REPOSITORY_PATH auf den Wert: ..\repository
2. SCM_TARGET_PATH auf den Wert: ..

Jetzt gilt es noch den Einstiegspunkt für die Webseite zu setzen, normal steht der bei Azure auf /site/index.html wenn ich mich nicht täusche, Laravel erwartet aber bekanntermaßen „site/public“. Das können wir aber ebenfalls auf der Seite mit den Einstellungen erledigen.

Das passende Gegenstück zur .htaccess, hat Laravel übrigens im Gepäck – beim iiS kümmert sich die „web.config“ um das Umschreiben der URLs.

Composer Erweiterung für WebApp

Die Einstellungen passen jetzt, was uns das Leben noch erleichtert ist eine Erweiterung die man einfach aktivieren kann, damit sorgt man dafür das „composer“ beim deployment ausgeführt wird und man das nicht noch händisch machen muss.

Deployment zur Azure WebApp

Der letzte Schritt, irgendwie müssen wir ja unsere Anwendung auch zu Azure bekommen. Persönlich finde ich das deployment über GIT am angenehmsten, dafür klonen wir uns quasi ein lokales Repository und kopieren unseren Code dorthin. Nach einem kurzen „git push“ sind wir dann auch schon online.