gnulinux
Goto Top

IIS 8.5: PHP-Hosting mit verschiedenen php.ini Konfigurationsdateien

Hallo,

ich nutze einen IIS 8.5 u.a. zum Hosting von PHP-Anwendungen mittels FastCGI. Jede Seite bzw. Anwendung soll mit eigenen php.ini Konfigurationsparametern angepasst werden. Die Hauptgründe liegen darin, dass ich so am besten auf die individuellen Anforderungen eingehen kann und natürlich der Sicherheitsaspekt. Also Erweiterungen nur dort aktivieren wo sie auch tatsächlich benötigt werden, PHP in das Verzeichnis der jeweiligen Seite mittels open_basedir einsperren etc.

Es gibt zwar an sich nützliche Hilfs-Tools wie z.B. den PHP-Manager, allerdings kann ich dort keine getrennten Konfigurationsdateien verwenden. Momentan stecke ich bei einer manuellen Zuordnung des Handlers für PHP-Dateien, den ich an die "php-cgi.exe" leite und an diese als Argument die php.ini der jeweiligen Anwendung übergebe.

Funktioniert zwar soweit wie ich das möchte, aber folgendes stört mich dabei:

- Ich habe eine KOMPLETT eigene php.ini für jedes Projekt - da einige Einstellungen bei sämtlichen Projekten identisch sind wäre mir am liebsten, eine globale php.ini zu haben die für alle Anwendungen genutzt wird, sowie die Möglichkeit eine Anwendungsspezifische hinzuzufügen, welche dann wiederum die globale überschreibt. Ich habe also beispielsweise eine global-php.ini in der open_basedir keinen Wert hat, in Anwendung example.com wird die Datei example-com-php.ini geladen, in der open_basedir mit "D:\Anwendungen\example.com\pub_html" überschrieben wird, d.H. in dieser Anwendung ist open_basedir = D:\Anwendungen\example.com\pub_html

- PHP-Updates in mehrere Anwendungen einzuspielen ist sehr aufwändig und zeitspielig: Ich muss den php-Handler in jeder Anwendung bearbeiten und auf den Pfad für die neue PHP-Version anpassen. Durch die Pfadänderung erstellt der IIS eine neue FastCGI-Anwendung, d.H. ich muss anschließend zur IIS Startseite => FastCGI und dort die alte Anwendung entfernen. Schlussendlich muss ich noch in der jeweiligen php.ini den Pfad für PHP-Erweiterungen (extension_dir) ebenfalls auf die neue Version anpassen, da dieser scheinbar absolut sein muss

Ich habe bisher noch keine Lösungen gesehen die anders vorgehen als wie ich das momentan bereits mache PHP die php.ini als Parameter zu übergeben. Einzige Alternative wäre eine globale php.ini zu laden und als Parameter jede Anwendungsspezifische php.ini Einstellung zu übergeben, aber das finde ich sehr unschön, da mit ein paar Einstellungen schnell ein langer Parameter-String zustande kommt der nicht gerade übersichtlich ist.

Einzige Lösung um hier etwas zu verbessern scheint mir zu sein, mich näher mit der PowerShell im Bezug auf den IIS zu beschäftigen und ein Script zu entwickeln, dass diese Reihe von Änderungen an jeder Anwendung für mich vornimmt. Bevor ich damit anfange würde mich interessieren, wie andere dieses Problem gelöst haben. Andere werden ja bei vergleichbaren Vorhaben wohl auf ähnliche Probleme gestoßen sein.

Content-ID: 261040

Url: https://administrator.de/contentid/261040

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

Vision2015
Vision2015 25.01.2015 um 07:48:43 Uhr
Goto Top
Guten Morgen,

ich nutze einen IIS 8.5 u.a. zum Hosting von PHP-Anwendungen mittels FastCGI.


Ich hoffe nur im Intranet....


Bevor ich damit anfange würde mich interessieren, wie andere dieses Problem gelöst haben. Andere werden ja bei
vergleichbaren Vorhaben wohl auf ähnliche Probleme gestoßen sein.

Jo, ich hatte vor etwa 10-12 jahren die gleichen Probleme wie du...
dann habe ich auf Linux umgebaut...

LG
V
colinardo
colinardo 25.01.2015, aktualisiert am 26.01.2015 um 12:08:34 Uhr
Goto Top
Hallo ASP.NET,
auch wenn ich zu Linux raten würde, halte dich für Windows an folgende Anleitung:
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/fast ...
Und für den Pfad zu PHP legst du dir einen Softlink (junction) im System an (z.B. mit mklink) den du bei einer Versions-Änderung einfach auf die neue PHP-Version zeigen lässt. So müssen die Pfade in den Configs nicht mehr angepasst werden, wenn du sie auf den Softlink zeigen lässt.

Grüße Uwe