suexec: command not in docroot (/usr/lib/cgi-bin/php5)



Bachsau

Member
So, ich habe mal wieder ein Problem: suexec beschwert sich. :rolleyes:

Natürlich liegt der "Command" nicht im docroot. Ist ja auch ein ScriptAlias. :mad:

Das PHP-Script liegt natürlich im Docroot. Jemand 'ne Idee? :confused:

Edit: Docroot auf /usr/lib/cgi-bin geändert, jetzt gefällt es ihm nicht, dass die Binary 'nem anderen Nutzer gehört. Wozu ist suexec überhaupt zu gebrauchen? Er soll doch einfach nur das Script unter der angegebenen Nutzerkennung ausführen, nicht allen möglichen Dreck prüfen. :(
 
Last edited by a moderator:
Der Apache httpd führt natürlich den PHP-Interpreter aus. Für ihn ist dieser das CGI-Skript, nicht dein PHP-Skript, welches der PHP-Interpreter ausführt. SuExec hat also völlig Recht.

du kannst nun entweder das PHP-Binary an die entsprechende Stelle in deinem Dateisystem kopieren, einen entsprechenden Wrapper dafür erstellen oder eine spezialisierte Lösung wie SuPHP verwenden. Debian hat übrigens auch eine konfigurierbare Version von SuExec im Paketrepertoire.
 
Last edited by a moderator:
Jupp, suExec custom habe ich schon probiert. Aber als nächstes beschwert er sich dann eben, dir Binary müsste dem User und der Gruppe gehören, dem der vHost gehört. :(

Aber mein bisheriger Webhoster und andere setzen es doch auch irgendwie bei den Kunden ein. Denen gehört der Interpreter doch auch nicht!
 
Du mußt PHP über ein Wrapper-Script starten, welches dem jeweiligen User gehört, sofern du nicht eine gepatchte Version von Suexec einsetzen willst, die den Owner-Check nicht macht - also ein wenig von der Suexec-Sicherheit wegnimmt.
Vorteil von der ersten Variante: Du kannst im Wrapper-Script jedem User eine eigene php.ini geben. Nachteil ist halt, daß du für jeden User ein eigenes Wrapper-Script brauchst.
 
Und dass ich noch 'nen Interpreter hab, der jedes mal geladen werden muss. ;)

Erstmal braucht dann jeder sein eigenes Wrapper-Script, und dieses muss ja auch noch mal interpretiert werden, von Dash, Bash, oder was auch immer... Gut ist natürlich, dass ich so die ini anpassen kann.
 
Last edited by a moderator:
So, Schnauze voll. Was nicht passt, das wird passend gemacht. :D

Hab mir das Paket mal vorgenommen, und es selbst compiliert. Jetzt läuft die Sache. :)

Wer's gebrauchen kann.

Die Änderungen im Einzelnen:
  • Script muss nicht mehr SuexecUserGroup gehören
  • minuid und mingid auf 1000
  • /usr/lib/cgi-bin als document root
 

Attachments

Last edited by a moderator:
Habe jetzt alles auf suPHP umgestellt. Damit geht vieles sehr viel leichter. Offenbar unterstützt das ja "so ganz nebenbei" auch andere CGI-Scripte. So könnte ich ganz auf mod_cgid verzichten.

Funktioniert das sauber, oder sollte man für den Rest doch besser suexec einsetzen?
 
Bachsau said:
Habe jetzt alles auf suPHP umgestellt.
filewalker said:
Wenn es nur PHP sein soll, nimm doch suPHP.
Aehm? :D

--

Wenn du nicht eine eigene ini fuettern willst kannst du auch direkt den ganzen Apache-Prozess mittels MPM peruser oder itk unter dem Benutzer laufen lassen und auf mod_php setzen.
 
Back
Top