natrafilem na następujący problem:
Kod
SYSTEM: SunOS ankiety 5.10 Generic_118833-17 sun4u sparc SUNW,Sun-Fire-V210
APACHE: 2.2.4,REV=2007.02.19
PHP: 5.2.1
phpMyAdmin: phpMyAdmin-2.10.0.2-all-languages
APACHE: 2.2.4,REV=2007.02.19
PHP: 5.2.1
phpMyAdmin: phpMyAdmin-2.10.0.2-all-languages
podczas instalacji phpMyAdmin w error_log apacha następujące błędy:
Kod
[Wed Mar 28 03:05:07 2007] [error] [client 212.180.157.47] PHP Warning: require_once(./libraries/common.lib.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /server/home/ankiety/www/pma/index.php on line 36
[Wed Mar 28 03:05:07 2007] [error] [client 212.180.157.47] PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required './libraries/common.lib.php' (include_path='.:/opt/csw/php5/lib/php') in /server/home/ankiety/www/pma/index.php on line 36
[Wed Mar 28 03:05:07 2007] [error] [client 212.180.157.47] PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required './libraries/common.lib.php' (include_path='.:/opt/csw/php5/lib/php') in /server/home/ankiety/www/pma/index.php on line 36
jak widać PHP nie widzi pliku ./libraries/common.lib.php, który to plik znajduje się w tej lokalizacji.
Po krótkiej analizie problemu okazało się, że PHP nie rozpoznaje _ZADNYCH_ sciezek relative, np:
Kod
# cat index.php
<?
echo 'x';
include_once('./test.php');
?>
<?
echo 'x';
include_once('./test.php');
?>
Kod
# cat test.php
<?php
phpinfo();
?>
<?php
phpinfo();
?>
przy odwolaniu do index.php powoduje analogiczny blad PHP. Jezeli w index.php zamienie w include "./test.php" na "test.php" wszystko działa poprawni.
Prosiłbym o pomoc w rozwiazaniu problemu. W googlach nie znalazlem rozwiazania, gdzies na zagranicznych forach ktos zauwaza taki problem i interpretuje go jako blad samego php'a. Uzywanie sciezek w wersji "../", "./", z tego co wiem, nie jest bledem i jest stosowane powszechnie. Moze chodzi o jakis parametr w konfigu?
dodam, ze include_path jest ustawiony prawidłowo.
Pozdrawiam,
koper
---
koper.biz
Witam,
po dłuższej walce z opisaną wyżej sytuacją ustaliłem, że błąd bierze się z faktu iż nie wszystkie katalogi po drodze do DocumentRoot'a maja +r dla uid=webservd. Sprawa wydaje się dość dziwna, zazwyczaj wystarczyło +x na katalogu. Tak czy inaczej sprawa jest zgloszona i opisana tutaj:
http://bugs.php.net/bug.php?id=39351
Pozdrawiam