Проблема с “open_basedir restriction in effect.”

Автор оригинала: baev
Не оно, но очень похоже:
http://bugs.php.net/bug.php?id=48880
Я ставил PHP 5.3.0 - творилась, что-то похожее, если не то же самое, в 5.2.6 и 5.2.10 - это просто не так заметно выражается.
Видимо есть какие-то ошибки в самом PHP с "open_basedir”, а в PHP 5.3.0 там чёрт знает что намудрили, поставил и тут же удалил.
 
modulator, авторы PHP честно сказали, что SafeMode это костыль и в 6-ке его не будет:
The PHP safe mode is an attempt to solve the shared-server security problem. It is architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren't very realistic, many people, especially ISP's, use safe mode for now.
Ну и с open_basedir в 5.3 намутили непонятно зачем дополнение ограничений через ini_set. Так и не понял для чего это, чтобы можно было тулить в локальный путь все что попало от юзера?
modulator, а нафига вообще попу гармонь? почему нельзя порешать на уровне прав юзера от которого запущен web-сервер и соответствующих прав на ФС?
 
Автор оригинала: baev
Не оно, но очень похоже:
http://bugs.php.net/bug.php?id=48880
Именно оно. Имхо, тему можно закрывать. Баг профиксили, правда еще не в паблике.

-~{}~ 30.07.09 11:56:

Под разными ОС ведет себя по разому) Что за баг такой)
 
Автор оригинала: Активист
Именно оно. Имхо, тему можно закрывать. Баг профиксили, правда еще не в паблике.
Вчера скачивал последние PHP 5.3 (5.3.1-dev) и PHP 5.2 (5.2.11-dev) с http://windows.php.net/snapshots/, всё-то же самое, хотя сегодня уже новые лежат. Про PHP 5.3 (5.3.1-dev) - молу вообще :(

В принципе там каждый день dev пакеты новые лежат можно обкачаться, но хотелось бы, чтобы проблема пропала.
 
modulator
Делай доунгрейд или отключай базедир вообще.

-~{}~ 31.07.09 01:31:

Запусти PHP как CGI c SUEXEC и настрой права.
 
Автор оригинала: uaperson
ну и как, помогло?
Нет.
Глюк стал другой, PHP стал заменять "open_basedir" параметром "include_path" из файла php.ini

В некоторых хостах вообще отключил "open_basedir", отключил его и в php.ini и все равно на том хосте, где он отключен я получаю стандартную ошибку “open_basedir restriction in effect.”

Написал на support PHP, но оттуда не ответа, не привета.
Всё еще не могу понять, что у меня PHP вытворяет на сервере.
 
Автор оригинала: modulator
Нет.
Глюк стал другой, PHP стал заменять "open_basedir" параметром "include_path" из файла php.ini

В некоторых хостах вообще отключил "open_basedir", отключил его и в php.ini и все равно на том хосте, где он отключен я получаю стандартную ошибку “open_basedir restriction in effect.”

Написал на support PHP, но оттуда не ответа, не привета.
Всё еще не могу понять, что у меня PHP вытворяет на сервере.
А мы вот обновились до последней версии на 5 Августа, на всех хостах проставили open_basedir в Apache и все работает на ура. Причем если у хоста не проставлен open_basedir, то получаем “open_basedir restriction in effect.”, поэтому проставили всем.
 
Автор оригинала: uaperson
А мы вот обновились до последней версии на 5 Августа, на всех хостах проставили open_basedir в Apache и все работает на ура. Причем если у хоста не проставлен open_basedir, то получаем “open_basedir restriction in effect.”, поэтому проставили всем.
Сделал всё-то же самое: PHP от 5 Августа прописал везде “open_basedir” и в php.ini и в виртуальных хостах Apache.
Посмотрим, что будет…
 
указание в конце выполнения скрипта команды:
Код:
exit;
решает проблему, ошибка не выводится.
 
Ну ведь не только вам рецепт может пригодиться. Я вот с такой ошибкой вчера столкнулся на хостинге с PHP 5.3.3
думаешь кроме тебя еще кто-то пользуется 6 летней версией которую уже полтора года как не поддерживают?
 
думаешь кроме тебя еще кто-то пользуется 6 летней версией которую уже полтора года как не поддерживают?
ЭЭх, не далее как с полгода назад пришлось делать сервер с PHP 4.x версией (старинный проект, очень нужный, но нехотят переделывать) да еще с коннектом в oracle!
 
не такая больша проблема мигрировать, у пыха довольно хорошая обратная совместимость.
 
не такая больша проблема мигрировать, у пыха довольно хорошая обратная совместимость.
Ну, как сказать.

У меня до сих пор есть древний тазик со старым кодом и php 5.3. Не обновляю только потому, что для перехода на php 5.4+ придется разгребать call-time pass by reference.

Причем я, конечно, дундук, но не совсем, и вызовы вида foo(&$value) использовал только в тех местах, где и в сигнатуре функции объявлена передача по ссылке. Для наглядности. До последнего надеялся, что при выкидывании этой настройки из php.ini сделают по уму и запретят только "форсированную" передачу по ссылке - в функцию, которая этого не ожидает. Однако ж тут пошли по простому пути и сделали банальный запрет токена & в контексте вызова во время компиляции.

Проходиться вручную по _всем_ амперсандам в коде - это жесть жестяная. Сейчас, конечно, можно было бы использовать nikic-parser, так, наверное, и сделаю, если припрет.
 
Зачем вручную? У тебя что, редактор не поддерживает поиск и замену по регулярным выражениям?…
Я такую задачу решил за один вечер. C чаем и чтением форумов, пока поиск по проекту бегает.
 
Сверху