[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переехал на новый сервер и перестали инклудиться
major28
Добрый день!
Я недавно поменял сервер и у меня перестали инклудится файлы которые расположены выше текущего документа. Вот что пишет апач


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?

Спустя 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)
для меня всегда было "../" - на один уровень вверх, "/" - корень

А точка - текущая директория wink.gif

Спустя 4 минуты, 13 секунд (15.09.2012 - 20:17) major28 написал(а):
блин обычно администрированием сервером занимался админ, сейчас пришлось мне самому заняться этим, чет тяжело дается)
хотел поменять значение 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 = ".".

Цитата
Каждому сайту свой 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)
но если таких конфигов много, то это будет геморно.

Можешь написать под это дело скрипт, для автоматизации, но учитывая, что у тебя сайты не добавляются каждый день, рентабельность нулевая smile.gif
Цитата (major28 @ 15.09.2012 - 20:42)
У меня на локальной машине стоит xamp и там всего один php ini и я думал что он должен быть для всех сайтов один

Ну ты сравнил х.. с трамвайной ручкой biggrin.gif
Локальный сервер для отладки, это одно, а продакшен - совсем другое. Сайты должны быть максимально изолированы друг от друга, это главное правило веб безопасности.
Цитата (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
Проверяй,там должен быть файлик с названием директивы.

Спустя 13 минут, 38 секунд (15.09.2012 - 21:54) major28 написал(а):
папка такая есть но там 6 файлов
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 у меня стоит точка и я хз где его поменять)) везде обыскался)

Спустя 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
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 прописано. Чудес же не бывает smile.gif

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

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.