#php #apache #php-ini #open-basedir
#php #апач #php-ini #открытый доступ к
Вопрос:
Я пытаюсь выполнить:
var_dump(ini_set("open_basedir",ini_get("open_basedir")));
с помощью PHP и получите false.
Apache 2. Версия PHP: 5.3.28, он должен изменить его из скрипта, как я прочитал на php.net документация.
В настоящее время open_basedir является .:/data/www/vhosts/имя хоста:/tmp
Я пытаюсь сделать это на локальном сервере с той же ОС, Apache и PHP, и все в порядке. Я пытаюсь установить уже установленное значение, потому что я пытаюсь отладить, почему я не могу поместить туда какое-либо значение. Помогите, пожалуйста!
Комментарии:
1. PHP 5.3 был устаревшим, как 7 лет назад, и
open_basedir
не всегда вел себя одинаково. Обновитесь до достаточно современной версии PHP.
Ответ №1:
Обычно open_basedir находится no value
в php 5. (следовательно, он может возвращать false — если вы устанавливаете его, получая текущее значение и используя var_dump для отображения).
Я предлагаю вам использовать следующее, чтобы узнать, какое фактическое значение имеет open_basedir в вашей системе:
<?php
phpinfo();
?>
Для дальнейшего тестирования, пожалуйста, попробуйте этот код:
- используйте ini_set для установки значения;
- верните его;
<?php
//var_dump(ini_set("open_basedir",ini_get("open_basedir")));
ini_set("open_basedir", ".hello");
echo "The open_basedir value is :". ini_get('open_basedir');
?>
Комментарии:
1. нет, у меня есть, просто хочу настроить для веб-приложения. уже решено — проверьте все переменные php ini и посмотрите privs = 4
2. Вы можете только сделать путь (ы) open_basedir более конкретным. Невозможно установить его для каталогов на том же или любом более высоком уровне.