PHP als CGI - "Premature end..."

Apache, Lighttpd, nginx, Cherokee
hasch
Posts: 99
Joined: 2007-03-09 15:23

PHP als CGI - "Premature end..."

Post by hasch » 2007-04-29 23:49

Wollte gerade eben das erste Mal PHP als CGI einrichten, folgender Code:

Code: Select all

ScriptAlias /php /usr/local/app/php5-cgi/bin
<Location /cgi-php/>
	Options ExecCGI
</Location>

AddType application/x-httpd-php .php
Action application/x-httpd-php /php/php
Apache gibt folgenden Fehler in der error_log zurück:

Code: Select all

Premature end of script headers: php
Das PHP Binary liegt unter /usr/local/app/php5-cgi. Das PHP Binary wurde mit der Gruppe und User des Apache Users gesetzt. (Auch bin/php)
Weiß jemand, wo mein Fehler liegt/liegen könnte?

Danke :)

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: PHP als CGI - "Premature end..."

Post by Roger Wilco » 2007-04-29 23:59

Lass das ScriptAlias weg und setze bei Action den kompletten Pfad zu deinem PHP-Binary und schau in das Error Log deines Webservers. Wenn du SuExec installiert hast, schau in dein SuExec Log.

hasch
Posts: 99
Joined: 2007-03-09 15:23

Re: PHP als CGI - "Premature end..."

Post by hasch » 2007-04-30 00:10

Vielen Dank.
Im suexec_log ist folgendes erfasst:
[2007-04-29 23:55:40]: uid: (10001/kevin) gid: (2524/2524) cmd: php
[2007-04-29 23:55:40]: command not in docroot (/usr/local/app/php5-cgi/bin/php)
Wie kann ich dies nun ändern, d.h. ich kann doch nicht für jeden Host das PHP Binary in das DocRoot kopieren!? :)

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: PHP als CGI - "Premature end..."

Post by Roger Wilco » 2007-04-30 00:37

hasch wrote:Wie kann ich dies nun ändern
Das geht direkt im Quellcode von SuExec.
hasch wrote:d.h. ich kann doch nicht für jeden Host das PHP Binary in das DocRoot kopieren!? :)
Es reicht ein Unterverzeichnis. Wenn das fest einkompilierte DocumentRoot z. B. /srv/www/ ist, kann PHP unter /srv/www/bin liegen. Allerdings muss das Binary dann für jeden Benutzer bereitliegen. Die Lektüre von http://httpd.apache.org/docs/2.0/suexec.html sollte dir helfen.