Я недавно поменял сервер и у меня перестали инклудится файлы которые расположены выше текущего документа. Вот что пишет апач
Warning: include_once() [function.include-once]: open_basedir restriction in effect. File(/var/www/site/include/bd.php) is not within the allowed path(s): (.) in /var/www/site/match/insert_translation.php on line 19
Warning: include_once(/var/www/site/include/bd.php) [function.include-once]: failed to open stream: Operation not permitted in /var/www/site/match/insert_translation.php on line 19
Warning: include_once() [function.include]: Failed opening '../include/bd.php' for inclusion (include_path='.:/usr/share/php') in /var/www/site/match/insert_translation.php on line 19
значение параметра
include_path = ".:/usr/share/php"
ОС ubunta12.
Если я в файле /var/www/site/match/insert_translation.php пытаюсь подключить файл на этом же уровне или ниже например /var/www/site/match/test/index.php все проходит ок. Если пытаюсь подключить что то выше этой диоектории то вылазят ошибки.
Вот на всякий случай код с помощью которого я подключаю файлы
include_once "../include/bd.php"; - первый способ
include_once __DIR__."/../include/bd.php"; - второй способ
Заранее спасибо!)
Спустя 16 минут, 39 секунд (15.09.2012 - 20:03) killer8080 написал(а):
major28
загляни в phpinfo(), что в директиве open_basedir?
загляни в phpinfo(), что в директиве open_basedir?
Спустя 3 минуты, 41 секунда (15.09.2012 - 20:07) major28 написал(а):
точка там))
Спустя 3 минуты, 17 секунд (15.09.2012 - 20:10) killer8080 написал(а):
Цитата (major28 @ 15.09.2012 - 20:07) |
точка там)) |
вот по тому он и не позволяет прыгать выше головы. Пропиши туда полный путь, на уровень выше, или вообще удали (последнее не советую, возможно это намеренное ограничение безопасности, FastCGI наверно?)
Спустя 1 минута, 3 секунды (15.09.2012 - 20:11) major28 написал(а):
чет прочитал значение параметра open_basedir и не смог понять как это применимо к моему случаю) и чет вообще не смог понять как это работает))) для меня всегда было "../" - на один уровень вверх, "/" - корень
Спустя 1 минута, 30 секунд (15.09.2012 - 20:13) killer8080 написал(а):
Цитата (major28 @ 15.09.2012 - 20:11) |
для меня всегда было "../" - на один уровень вверх, "/" - корень |
А точка - текущая директория

Спустя 4 минуты, 13 секунд (15.09.2012 - 20:17) major28 написал(а):
блин обычно администрированием сервером занимался админ, сейчас пришлось мне самому заняться этим, чет тяжело дается)
хотел поменять значение open_basedir на что нить другое а значение в phpinfo все равно точка. Сервер после смены конфига перезапускал.
А если я укажу туда прямой путь к директории это получается я сделаю конфиг зависимым от текущего сайта, а если у меня второй сайт появится на серваке?) какой open_basedir тогда ставить чтобы инклуды работали правильно на всех сайтах?)
хотел поменять значение open_basedir на что нить другое а значение в phpinfo все равно точка. Сервер после смены конфига перезапускал.
А если я укажу туда прямой путь к директории это получается я сделаю конфиг зависимым от текущего сайта, а если у меня второй сайт появится на серваке?) какой open_basedir тогда ставить чтобы инклуды работали правильно на всех сайтах?)
Спустя 7 минут, 3 секунды (15.09.2012 - 20:24) killer8080 написал(а):
Цитата (major28 @ 15.09.2012 - 20:17) |
хотел поменять значение open_basedir на что нить другое а значение в phpinfo все равно точка. |
значит не в том файле менял, посмотри в phpinfo какой файл используется.
Цитата (major28 @ 15.09.2012 - 20:17) |
А если я укажу туда прямой путь к директории это получается я сделаю конфиг зависимым от текущего сайта, а если у меня второй сайт появится на серваке?) какой open_basedir тогда ставить чтобы инклуды работали правильно на всех сайтах?) |
Каждому сайту свой php.ini, иначе как ты будешь изолировать файлы сессий, сайтов между собой? Какая конфигурация сервера?
Спустя 17 минут, 53 секунды (15.09.2012 - 20:42) major28 написал(а):
так ситуация следущая
в phpifo выводит Loaded Configuration File /etc/php5/apache2/php.ini , я и редактирую этот файл, до момента редактирования(когда phpinfo выводит open_basedir = .) там вообще этот параметр был закомментирован. Сейчас же я поменял на две точки и все равно phpinfo выводит ".". Сервер перезапускал. Видать где то в другом файле подгружаются эта опция, но не понятно почему в phpinfo выводится что Loaded Configuration File /etc/php5/apache2/php.ini и парметр open_basedir = ".".
в phpifo выводит Loaded Configuration File /etc/php5/apache2/php.ini , я и редактирую этот файл, до момента редактирования(когда phpinfo выводит open_basedir = .) там вообще этот параметр был закомментирован. Сейчас же я поменял на две точки и все равно phpinfo выводит ".". Сервер перезапускал. Видать где то в другом файле подгружаются эта опция, но не понятно почему в phpinfo выводится что Loaded Configuration File /etc/php5/apache2/php.ini и парметр open_basedir = ".".
Цитата |
Каждому сайту свой php.ini, иначе как ты будешь изолировать файлы сессий, сайтов между собой? Какая конфигурация сервера? |
А как это реализовать в файловой системе? Я как понимаю конфиги файлы Loaded Configuration File /etc/php5/apache2/php.ini являются общими для всех сайтов, а ты еще предлагаешь некоторые опции установить для каждого сайта отдельно. Я как понял это можно сделать в файле виртуального хоста, но если таких конфигов много, то это будет геморно. Наверно есть какой то другой сопсоб. У меня на локальной машине стоит xamp и там всего один php ini и я думал что он должен быть для всех сайтов один. Объясните пожалуйста этот непонятный для меня момент)
Спустя 13 минут, 36 секунд (15.09.2012 - 20:56) killer8080 написал(а):
Цитата (major28 @ 15.09.2012 - 20:42) |
Я как понял это можно сделать в файле виртуального хоста, |
Цитата (major28 @ 15.09.2012 - 20:42) |
но если таких конфигов много, то это будет геморно. |
Можешь написать под это дело скрипт, для автоматизации, но учитывая, что у тебя сайты не добавляются каждый день, рентабельность нулевая

Цитата (major28 @ 15.09.2012 - 20:42) |
У меня на локальной машине стоит xamp и там всего один php ini и я думал что он должен быть для всех сайтов один |
Ну ты сравнил х.. с трамвайной ручкой

Локальный сервер для отладки, это одно, а продакшен - совсем другое. Сайты должны быть максимально изолированы друг от друга, это главное правило веб безопасности.
Цитата (major28 @ 15.09.2012 - 20:42) |
так ситуация следущая в phpifo выводит Loaded Configuration File /etc/php5/apache2/php.ini , я и редактирую этот файл, до момента редактирования(когда phpinfo выводит open_basedir = .) там вообще этот параметр был закомментирован. Сейчас же я поменял на две точки и все равно phpinfo выводит ".". Сервер перезапускал. Видать где то в другом файле подгружаются эта опция, но не понятно почему в phpinfo выводится что Loaded Configuration File /etc/php5/apache2/php.ini и парметр open_basedir = ".". |
Это прописано в master value или local value? В Configuration File (php.ini) Path прописаны пути откуда будут подгружаться дополнительные конфиги. Так же, эта опция может устанавливаться в конфигах апача, или через .htaccess.
Спустя 8 минут, 33 секунды (15.09.2012 - 21:04) major28 написал(а):
Цитата |
так ситуация следущая в phpifo выводит Loaded Configuration File /etc/php5/apache2/php.ini , я и редактирую этот файл, до момента редактирования(когда phpinfo выводит open_basedir = .) там вообще этот параметр был закомментирован. Сейчас же я поменял на две точки и все равно phpinfo выводит ".". Сервер перезапускал. Видать где то в другом файле подгружаются эта опция, но не понятно почему в phpinfo выводится что Loaded Configuration File /etc/php5/apache2/php.ini и парметр open_basedir = ".". |
Цитата |
Это прописано в master value или local value? В Configuration File (php.ini) Path прописаны пути откуда будут подгружаться дополнительные конфиги. Так же, эта опция может устанавливаться в конфигах апача, или через .htaccess. |
про master value или local value не понял) Видать то что у меня в Configuration File (php.ini) Path закоментирован open_basedir а в пхпинфо выводится точка из-за того что этот конфиг где то уровнем выше настраивается. В htaccess глянул там нет этого атрибута. Конфигах апача, который находится в /etc/apache2/httpd.conf ваще пустой) Где еще можно глянуть эту опцию?) где то может еще конфиг апача лежит?)
Спустя 27 минут, 15 секунд (15.09.2012 - 21:32) killer8080 написал(а):
Цитата (major28 @ 15.09.2012 - 21:04) |
про master value или local value не понял) |
master value - это глобальная настройка из ини файла, local value - настройка заданная при запуске скрипта локально, например через htaccess или ini_set().
Цитата (major28 @ 15.09.2012 - 21:04) |
Конфигах апача, который находится в /etc/apache2/httpd.conf ваще пустой) Где еще можно глянуть эту опцию?) где то может еще конфиг апача лежит?) |
В дебианах httpd.conf всегда пустой и используется для пользовательских настроек, основной конфиг апача лежит там же в apache2.conf если не ошибаюсь, кроме того в нем прописана директория откуда подгружать конфиги, в частности все настройки php берутся от туда, каждая директива выделена в отдельный файл, для удобства администрирования. Сейчас бутанусь в дебиан, тогда скажу точнее.
Спустя 9 минут, 5 секунд (15.09.2012 - 21:41) killer8080 написал(а):
major28
у меня в Дебиане, дополнительные конфиги php лежат в /etc/php5/apache2/conf.d
Проверяй,там должен быть файлик с названием директивы.
у меня в Дебиане, дополнительные конфиги php лежат в /etc/php5/apache2/conf.d
Проверяй,там должен быть файлик с названием директивы.
Спустя 13 минут, 38 секунд (15.09.2012 - 21:54) major28 написал(а):
папка такая есть но там 6 файлов
mcrypt.ini
mysql.ini
mysqli.ini
pdo.ini
pdo_mysql.ini
gd.ini
там ничего связанного с open_basedir нет
mcrypt.ini
mysql.ini
mysqli.ini
pdo.ini
pdo_mysql.ini
gd.ini
там ничего связанного с open_basedir нет
Спустя 6 минут, 3 секунды (15.09.2012 - 22:00) killer8080 написал(а):
В phpinfo в Additional .ini files parsed указано какие файлы дополнительно подключены, если там ничего нет, смотри в apache2.conf или в настройках вирт хоста, он должен быть в директории /etc/apache2/sites-available
Спустя 2 минуты, 7 секунд (15.09.2012 - 22:02) major28 написал(а):
ок буду искать)) спасибо за помощь)
Спустя 16 часов, 52 минуты, 47 секунд (16.09.2012 - 14:55) major28 написал(а):
так фишка следующая
master value параметр open_basedir я нашел как менять, а вот local value у меня стоит точка и я хз где его поменять)) везде обыскался)
master value параметр open_basedir я нашел как менять, а вот local value у меня стоит точка и я хз где его поменять)) везде обыскался)
Спустя 1 час, 52 минуты, 40 секунд (16.09.2012 - 16:48) killer8080 написал(а):
Цитата (major28 @ 16.09.2012 - 14:55) |
а вот local value у меня стоит точка и я хз где его поменять)) везде обыскался) |
htaccess или ini_set в скриптах.
Спустя 2 часа, 24 минуты, 53 секунды (16.09.2012 - 19:13) major28 написал(а):
я первым делом htaccess или ini_set прочекал, там нет) ваще хз где этот атрибут устанавливается
Спустя 3 минуты, 56 секунд (16.09.2012 - 19:17) killer8080 написал(а):
major28
ну тогда попробуй пропиши в htaccess
ну тогда попробуй пропиши в htaccess
php_value open_basedir "none"
Спустя 2 минуты, 18 секунд (16.09.2012 - 19:19) major28 написал(а):
тоже пробовал) не прокатило))
Спустя 12 минут, 24 секунды (16.09.2012 - 19:31) killer8080 написал(а):
major28
в конфиг виртхоста загляни, наверно там через php_admin_value прописано. Чудес же не бывает
в конфиг виртхоста загляни, наверно там через php_admin_value прописано. Чудес же не бывает

Спустя 1 час, 38 минут, 29 секунд (16.09.2012 - 21:10) major28 написал(а):
ай блин я вместо php_admin_value в htaccess php_value писал) значение атрибута open_basedir перебить смог, но все равно где изначально устанавливается это значение я узнать не смог) лан пока все работает) спасибо большое за помощь!)