PHP: Не удается установить open_basedir

#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();
?>
 

Для дальнейшего тестирования, пожалуйста, попробуйте этот код:

  1. используйте ini_set для установки значения;
  2. верните его;
 <?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 более конкретным. Невозможно установить его для каталогов на том же или любом более высоком уровне.