open_basedir restriction и getcwd по-разному работают в CLI и SAPI

Z_M

Guest
open_basedir restriction и getcwd по-разному работают в CLI и SAPI

Уважаемый пипл, не дайте ламеру умереть в неведении!
сделал давече апгрейд пхп4->пхп5 и вдруг перестало работать много кода, но я бы не стал особо на этом морочиться и начал бы просто править код, но(!) если бы не перестали работать не мои приложения-phpmyadmin например. Во всех приложениях ошибка, связвнная с включением инклюдников. вот пример ошибки

Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(./libraries/grab_globals.lib.php) is not within the allowed path(s): (.:./:/usr/local/lib/php:/usr/local/share:/www/xxx-xxx.net/www) in /www/xxx-xxx.net/www/phpmyadmin/index.php on line 12
Warning: require_once(./libraries/grab_globals.lib.php) [function.require-once]: failed to open stream: Operation not permitted in /www/xxx-xxx.net/www/phpmyadmin/index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required './libraries/grab_globals.lib.php' (include_path='.:/php/includes:/usr/local/lib/php:/usr/local/share/pear') in /www/xxx-xxx.net/www/phpmyadmin/index.php on line 12

и поверьте мне с этим open_basedir имел секс пол ночи и ничего.
самое любопытное, что из консоли работает без проблем и еще интересный факт -из консоли такой скрипт работает а через апач НЕТ:

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
echo 'getcwd='.getcwd();
?>

%php -f test.php
getcwd=/www/xxx-xxx.net/www

почему getcwd отказывается работать ума не приложу. помогите советом, пожалуйста.
заранее благодарен.
 

das6745

Новичок
Operation not permitted in /www/xxx-xxx.net/www/phpmyadmin/index.php
у меня с phpmyadmin была такая же штука, смотри внимательно на права доступа.

интересный факт -из консоли такой скрипт работает а через апач НЕТ:
если не ошибаюсь, то в консоле пользователь и группа - твои, а через апач - апача

ps: я так понял это все на линухах, верно?
 

Z_M

Guest
права на все файлы стоят 664, на папки 775.
почему тогда никаких сообщений об ошибках нет?
скрипт с getcwd() то я запускаю и echo то мне пишет
'getcwd=' а сама функция getcwd() возвращает пустое значение из SAPI.
это UNIX.
 

das6745

Новичок
попробуй всетаки 777, если поможет - с правами дрянь, нет - с настройками пхп или апача.
!!! только потом назад нормальные поставь, и всеже, я настаиваю что у тебя не то чето с группами

On some Unix variants, getcwd() will return FALSE if any one of the parent directories does not have the readable or search mode set, even if the current directory does. See chmod() for more information on modes and permissions.

http://php.net/getcwd

именно юникс? в глаза никогда не видел, выложи плз вывод uname -a
 

Z_M

Guest
да действительно вы правы! из под CLI я то юзером пускал скрипт, а апач не мог его выполнить, потому, что на одну из директорий в пути стояли права 711.
я еще над этим подумаю, в частности почему ж на 4м пхп это таки работало.
Всем спасибо!
пс: юникс FreeBSD 6.2
 

das6745

Новичок
ппс: для выполнения стоять вроде как 755
зы:
юникс это юникс и торговая марка, а FreeBSD это FreeBSD, юниксподобная, и кажись соответствует The Single UNIX Specification. в общем масло масляное, но разница есть.
 
Сверху