"We are back" « oc.at

include_path in php 4.3.1

atrox 08.03.2003 - 10:43 496 4
Posts

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
hab gestern ein älteres system von apache 1.3.19 mit php 4.0.5 auf apache 1.3.27 mit php 4.3.1 upgedatet. (alle source-packages wurden frisch compiliert.)
leider kämpfe ich seit dem mit einem sehr seltsamen include/require problem:

include("inc/design.inc.php"); // funktioniert
include("./inc/design.inc.php"); // no such file (siehe unten)

es sieht so aus, als ob punkte php verwirren, an einer anderen stelle funktioniert nachfolgendes include nicht, obwohl es in 4.0.5 problemlos ging:
include("../inc/design.inc.php");

die fehlermeldungen sehen so aus:
Code:
Warning: main(./lib/database.php) [function.main]: failed to create stream: No such
 file or directory in /home/XXXX/public_html/F_SimResult.php on line 10

Fatal error: main() [function.main]: Failed opening 
required './lib/database.php' (include_path='.:/usr/local/lib/php') 
in /home/XXXX/public_html/F_SimResult.php on line 10
die jeweilige datei ist natürlich vorhanden, und world-readable.
(wie gesagt, in 4.0.5 ging es perfekt)

das alles, obwohl include_path den punkt "." (=aktuelles verz) enthält.
aus php.ini:
include_path = ".:/usr/local/lib/php"

gibt es im neuen php noch irgendwelche variablen, die include/require/include_once/require_once beeinflussen ? (SafeMode ist off)
Bearbeitet von am 08.03.2003, 12:08 (zeilenumbruch im code)

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
php includiert dir ja nicht nur die files aus dem aktuellen dir wenn du relative pfade angibst, sondern auch aus dem dir in dem das aufrufende file steht. Das erklärt obriges verhalten

drum könnte ich mir vorstellen dass dein working-dir falsch gesetzt ist - was sagt getcwd()?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
nanu... getcwd() ist ein leerstring. :confused:
auf einem anderen rechner mit php 4.3.0 gibt getcwd() den korrekten pfad zurück !

/update: der überschmäh ist: selbst wenn ich in der zeile davor chdir() aufrufe, liefert getcwd einen null-string zurück. :confused:²
Bearbeitet von atrox am 08.03.2003, 16:05

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
getcwd verwendet die entsprechende glibc-funktion. ich würd also dort ansetzen und mal diese checken.
edit: beim php-configure könntest du sehen ob getcwd gefunden und supportet ist.

ich denke ein update der glibc und dann ein php-recompile sollte das problem lösen.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
...
checking for getcwd... (cached) yes
...
folgendes testprogramm funkt auch:
#include <unistd.h>
#include <stdio.h>
int main(void) {
char t[500];
puts(getcwd(t,sizeof(t)));
}

total seltsam - werd wohl weiterprobieren müssen, und einstweilen downgraden :(

//update: grad wieder 4.0.5 frisch kompiliert, und include/require/getcwd/... funktioniert hervorragend. *grmbl*
Bearbeitet von atrox am 09.03.2003, 07:45
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz