Dennis: *.phps unter PHP-CGI

Beitrag lesen

Hi Mathias,

Nützt nicht viel, da ja keinerlei Ausgabe davon im Browser erscheint, sondern wie gesagt nur meine 404-Fehlerseite. Auch eine Logausgabe in /tmp führt zu keinem Ergebnis; es ist, als würde das Script überhaupt nicht ausgeführt. Alle Rechte sind jedoch korrekt gesetzt.

Dann hast du irgendwo anders einen Fehler reingebaut, ich kann dir bestätigen, dass folgendes funktioniert:

ScriptAlias /wrapper/ /var/www/example.org/wrapper/  
  
AddType application/x-httpd-php5 .php  
Action application/x-httpd-php5 /wrapper/php5-starter  
  
<Directory /var/www/example.org/wrapper>  
  Options ExecCGI  
</Directory>

php5-starter ist dabei folgendes Script:

#!/bin/bash  
  
exec /usr/local/bin/php5-cgi /var/www/example.org/htdocs$1

Ich habe jetzt gerade mal ausprobiert, ob das auch klappt, wenn ich -s mit anhänge. Es ist mir nicht gelungen, dass mit der php5-cgi zu schaffen, wenn ich aber PHP CLI verwende, dann klappt es:

#!/bin/bash  
  
echo "Content-Type: text/html"  
echo ""  
exec /usr/local/bin/php5 -s /var/www/example.org/htdocs/index.php

Ist eigentlich sowieso viel besser so, weil man nun noch ein HTML Gerüst drum packen kann - die Ausgabe von PHP ist nämlich nur der <code>-Block ohne was drumrum.

Versuche ich jetzt allerdings beim exec das /index.php durch $1 zu ersetzen, dann funktioniert es nicht mehr... Nehme ich aber php5-cgi und einfach $1 statt /index.php, dann funktioniert es.

Kann man PHP CLI nicht einfach mit $1 den Pfad geben? *grübel* Vielleicht hab ich auch grade nur irgendwo einen Denkfehler drin ;-)

Jedenfalls habe ich gerade noch festgestellt, dass wenn ich statt $1 einfach $PATH_INFO nehmen, dass es dann wie gewünscht funktioniert und es werden mir sämtliche Dateien im Quelltext angezeigt, wie im Apache definiert (hier: .php).

Viele Grüße aus Kanada,
  ~ Dennis.