Webserverkonfig Problem mit './' in php

tigion

goodnight moon
Hallo, ich knobbel momentan an einen Problem, welches ich mir nicht erklären kann und zwar folgendes:

An welcher Konfigurationsdatei bzw. Einstellung könnte es liegen, wenn unter php keine Befehle mit include/require mehr funktionieren, wenn diese eine Dateiangabe beinhalten mit vorangestelltem './' ?
Dubioser weise, geht es bei einem anderen User auf dem gleichen Server :confused:

Kurz gesagt:

include('datei.inc.php') ... funktioniert
include('./datei.inc.php') ... geht nicht :(

Code:
$ php -v
PHP 5.2.0 (cli) (built: Jan 21 2007 21:37:11)

Danke schonmal für eventuelle Tipps ...
 
Relative Pfade. Erstes Beispiel sucht im include_path, 2. sucht im Verzeichnis wo php gerade steht.
 
Hm ... die Datei 'datei.inc.php' liegt im gleichen Verzeichnis wie die test.php, welche die erst genannte includen will. So müsste er sie ja eigentlich im aktuellen Pfad von test.php suche und finden, so das 'datei.inc.php' und './datei.inc.php' beide im gleichen Pfad von test.php zu finden sein müssten.

Nur warum es nicht geht, was eigentlich normal sein müsste ... wundert mich?

Edit: Müsste php nicht automatisch erkennen, das Dateiangaben mit oder ohne vorangestelltem './' sich auf das aktuelle Verzeichnis beziehen?
 
Ich hab mal einen kleinen Testfall gemacht und zwei Dateien in einem Testverzeichnis angelegt:

Datei index.php:

PHP:
<?php
echo "Test: include('index_part.inc.php') ... ";
$value=0;
include('index_part.inc.php');
if ($value == 1) {
  echo "true<br/>";
} else {
  echo "false<br/>";
};
echo "<br/>";
echo "Test: include('./index_part.inc.php') ... ";
$value=0;
include('./index_part.inc.php');
if ($value == 1) {
  echo "true<br/>";
} else {
  echo "false<br/>";
};
?>

Datei index_part.inc.php:

PHP:
<?php
$value=1;
?>

Die Ausgabe beim Aufruf der index.php im Webbrowser müsste eigentlich beidemale 'true' bringen, bringt aber mir unerklärlicherweise bei './' ein false.

Code:
Test: include('index_part2.inc.php') ... true

Test: include('./index_part2.inc.php') ... false

:confused:

Edit: Im Errorlog steht dazu folgendes:

Code:
PHP Warning:  include() [<a href='function.include'>function.include</a>]:
Failed opening './index_part.inc.php' for inclusion
(include_path='.:/usr/pkg/lib/php') in
/*****/public_html/test/index.php on line 13

Also sucht php Angaben mit './' nicht im aktuellen Pfad sondern in include_path :confused:
 
Zuletzt bearbeitet:
Mit bedeutet das php im Aktuellen Verzeichnis schaut, ohne grast er den include_path ab der aber normal wie bei dir auch mit dem aktuellen Verzeichnis anfängt.
 
Ja, sonst würde ja die Variante ohne './' auch nicht gehen. Also beide Dateien haben die Rechte 644.

Es muss irgend eine Konfiguration sein, die dieses komische Verhalten auslöst.
 
Zurück
Oben