PHP: невозможно установить Open_basedir

Я пытаюсь выполнить:

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/hostname:/tmp

Я пытаюсь сделать это на локальном сервере с той же ОС, Apache и PHP, и все в порядке. Я пытаюсь установить уже установленное значение, потому что я пытаюсь отладить, почему я не могу указать там какое-либо значение. Помогите, пожалуйста !


person odd90058    schedule 24.01.2021    source источник
comment
Версия PHP 5.3 устарела 7 лет назад, и open_basedir не всегда вел себя одинаково. Обновите до достаточно современной версии PHP.   -  person Alex Howansky    schedule 24.01.2021


Ответы (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');
?>
person Ken Lee    schedule 24.01.2021
comment
нет, у меня есть, просто хочу настроить для веб-приложения. уже решить - проверьте все переменные php ini и посмотрите privs=4 - person odd90058; 24.01.2021