eddi: weitere informationen

Beitrag lesen

Re:

Mir ist direkt kein Unterschied aufgefallen, welcher etwas mit dem Problem zu tun hat. Aber ihr könnt unter http://213.180.179.171/info.txt die angaben von der Command Line ansehen und unter http://213.180.179.171/info.php das vom Apache.

Damit ist dann auch der Fall aufgeklärt ;)
"Server API => Command Line Interface"
Der Aufruf php greift nicht auf di c:\php\php-cgi.exe zu sondern auf das CLI (vermutlich c:\php\php-cli.exe) zu!

seth hatte nämlich recht. Das CGI-Programm nimmt immer das aktuelle verzeichnis des Scripts als Arbeitsverzeichnis an; und genau da ist auch der Hund begraben.

Wenn ich ins Verzeichnis c:\php gehe und dort php -f "c:\programme\apache group\apache\htdocs\getcwd.php" gehe bekomme ich c:\php zurück. per browser bekomme ich C:\Programme\Apache Group\Apache2\htdocs\ Deswegen bin ich in der CommandLine einmal ins Verzeichnis des Scripts gegangen und dort folgenden Befehl ausgeführt. c:\php -f script.php. Damit haben die includes funktioniert.

Es gibt eine Möglichkeit hier mit auto_prepend_file eine Routine vorzuschalten, die mittels

  
if(php_sapi_name() == "cli")  
   chdir(dirname($_SERVER["argv"][1]));  

eine Fallunterscheidung macht.

Gruß aus Berlin!
eddi