Хорошо, я все перепробовал, это, пожалуй, самое лучшее место, я хочу сделать Document Root здесь httpdocs/[folder]/html
, и у меня есть php-файлы, которые я хочу поставить выше корня (require '../[folder]/file.php']
, но не иметь возможность доступа дальше, чем /var/www/vhosts/example.com/httpdocs
. Я знаю, что меня ограничивают open_basedir
, потому что значение все еще равно httpdocs/[folder]/html
в phpinfo()
, но я не могу изменить это локальное значение!
Это то, что я пробовал до сих пор:
Я видел это - Как включить файл вне корня документа? - и создал 'vhost.conf', который все еще сидит в каталоге conf, перенастроил файл, перезапустил apache ... ничего. Это хороший пост, но он немного устарел.
Я отредактировал сам php.ini до open_basedir = '/var/www/vhosts/example.com/httpdocs
, загрузил его обратно туда, где он был, перенастроен, перезапущен - ничего
Я вытащил 'httpd.conf', отредактировал его, добавив те же строки из другого файла conf (vhost.conf), вставил обратно - ничего, затем я попытался сделать то, что здесь говорит Godaddy - http://help.godaddy.com/article/1616 и добавил строку php_admin_value open_basedir none' to 'httpd.conf
- тоже не повезло.
Сейчас 0435, и я едва могу держать глаза открытыми - этот сайт предполагается запустить завтра в 2000 году! Заранее спасибо всем, кто хочет / может читать и / или помочь.
Обновление: Спасибо за быстрый ответ, вот лучшие ответы, которые я могу вам дать:
Это выдает ошибку?
Да, я получаю ошибку сервера и через журнал ошибок сервера, а именно:
PHP Предупреждение: require () [function.require]: действует ограничение open_basedir. Файл (/ var / www / vhosts / [example.com] / httpdocs / [папка] / [папка, в которой существуют защищенные файлы php] / [file.php]) находится за пределами допустимого пути:
Так что я на 99,99% уверен, что это из-за ограничения open_basedir.
Вы уверены, что ваш веб-сервер установлен как владелец vhosts /?
Я почти уверен, я немного новичок в управлении серверами, и я не знаю точно, что это значит, но у меня есть виртуальный выделенный сервер через Godaddy, на котором запущен Parallels Plesk v10.3.1, я сделал вышеуказанный файл Переезд происходит через Shell SSH.
В Plesk я могу изменить «Корень документа» на любое значение ниже /var/www/vhosts/example.com
, а Plesk изменит «open_basedir» на все, что я установил. Например, если я установил для корня документа значение «httpdocs» в Plesk, то «open_basedir» изменится на ту же папку, и все будет работать нормально. Проблема в том, что я не хочу публичного доступа ко всему в /httpdocs/[folder]
Моя цель - я хочу изменить 'root документа' на /httpdocs/[folder]/html
и open_basedir на /httpdocs
, но я не могу изменить это локальное значение в open_basedir
по какой-то причине. Я хочу сделать это в целях безопасности, чтобы люди могли напрямую получать доступ только к неважным файлам php, но сам php я хочу дать больше доступа к папкам.
Вы пытаетесь включить использование относительных или абсолютных путей?
Мои пути в php-файле, которые я пытаюсь включить / требовать для файлов выше «корневой каталог документа», выглядят в точности так:
require '../[folder where secure php files exist]/file.php';
Если я правильно вас понимаю, я не использую весь путь к серверу.