Quantcast
Channel: Server Support Forum
Viewing all articles
Browse latest Browse all 7456

Weg von su_PHP. Aber wohin?

$
0
0
Hallo Leute! Gerade bin ich dabei, auf meinem vServer (OpenVZ) den Umstieg auf Debian Jessie und damit auch Apache 2.4 vorzubereiten.

Da ich vergleichsweise wenig Speicher zur Verfügung habe, aber mehrere vHosts durch verschiedene Systemnutzer voneinander trennen möchte, setze ich auf klassisches CGI. So kann ich den Apache mit threads laufen lassen und Scriptinterpreter werden nur gestartet, wenn auf dem vHost gerade etwas abgerufen wird. Das soll auch möglichst so bleiben, da unter vergleichweise vielen vHosts relativ wenig Anfragen bearbeitet werden. Es bringt also nichts, auf Fast CGI zu setzen, und für jeden Nutzer verschiedene Interpreter im Speicher zu haben.

Zu Anfang habe ich versucht, diese Konfiguration mittels mod_cgi und suexec zu realisieren. Gescheitert ist das an PHP, weil die Scripte in der Regel keine Shebang-Zeile haben und anhand ihrer Dateiendung erkannt werden müssen. Normalerweise würde ich das mittels mod_action lösen. Dann beschwert sich aber suexec, dass der PHP-Interpreter nicht dem Benutzer gehört. Die einzige Lösung dafür waren irgendwelche unsauberen Wrapper (was das starten weiterer Scripts erfordert), das kopieren von PHP in jeden DocumentRoot oder eben su_PHP. Ich habe mich für letzteres entschieden, und dabei gleich anderes CGI auch darüber abgewickelt, so dass ich mod_cgi gar nicht mehr lade.

Leider wird su_PHP aber nicht mehr weiter entwickelt und ist in Jessie nicht mehr enthalten. Außerdem wäre es natürlich toll, das gleiche Verfahren auch für andere Scriptsprachen anwenden zu können. Ich hab' zwar schon daran herumgepatcht, es aber aber selbst für Apache 2.4 anzupassen macht wohl wenig Sinn. Jetzt weiß ich aber nicht, wie es weiter geht.

Im Prinzip suche ich also nach einer sauberen Lösung, bei bestimmten Scripts definierte Interpreter vorzuschalten, dabei die Sicherheitschecks von suexec aber auf die Nutzerscripte statt auf den Interpreter anzuwenden.

Eigentlich ja ein Problem vor dem auch jeder Shared-Hoster stehen müsste. Es scheint aber dennoch keine saubere Lösung zu geben. Ich möchte etwas haben, das ohne den Umweg über irgendetwas auskommt, das in jeden DocumentRoot kopiert werden muss.

Für Tipps wär' ich deshalb dankbar.

Gruß,
Bachsau

Viewing all articles
Browse latest Browse all 7456

Trending Articles