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

modulator

Новичок
Автор оригинала: 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 там чёрт знает что намудрили, поставил и тут же удалил.
 

dimagolov

Новичок
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:

Под разными ОС ведет себя по разому) Что за баг такой)
 

modulator

Новичок
Автор оригинала: Активист
Именно оно. Имхо, тему можно закрывать. Баг профиксили, правда еще не в паблике.
Вчера скачивал последние 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 и настрой права.
 

modulator

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

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

Написал на support PHP, но оттуда не ответа, не привета.
Всё еще не могу понять, что у меня PHP вытворяет на сервере.
 

uaperson

Новичок
Автор оригинала: 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.”, поэтому проставили всем.
 

modulator

Новичок
Автор оригинала: uaperson
А мы вот обновились до последней версии на 5 Августа, на всех хостах проставили open_basedir в Apache и все работает на ура. Причем если у хоста не проставлен open_basedir, то получаем “open_basedir restriction in effect.”, поэтому проставили всем.
Сделал всё-то же самое: PHP от 5 Августа прописал везде “open_basedir” и в php.ini и в виртуальных хостах Apache.
Посмотрим, что будет…
 

igrok54

Ищущий
указание в конце выполнения скрипта команды:
Код:
exit;
решает проблему, ошибка не выводится.
 

WMix

герр M:)ller
Партнер клуба
Ну ведь не только вам рецепт может пригодиться. Я вот с такой ошибкой вчера столкнулся на хостинге с PHP 5.3.3
думаешь кроме тебя еще кто-то пользуется 6 летней версией которую уже полтора года как не поддерживают?
 

michelle

Новичок
думаешь кроме тебя еще кто-то пользуется 6 летней версией которую уже полтора года как не поддерживают?
ЭЭх, не далее как с полгода назад пришлось делать сервер с PHP 4.x версией (старинный проект, очень нужный, но нехотят переделывать) да еще с коннектом в oracle!
 

AmdY

Пью пиво
Команда форума
не такая больша проблема мигрировать, у пыха довольно хорошая обратная совместимость.
 

fixxxer

К.О.
Партнер клуба
не такая больша проблема мигрировать, у пыха довольно хорошая обратная совместимость.
Ну, как сказать.

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

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

Проходиться вручную по _всем_ амперсандам в коде - это жесть жестяная. Сейчас, конечно, можно было бы использовать nikic-parser, так, наверное, и сделаю, если припрет.
 

AnrDaemon

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