У меня есть веб-сервер Apache, установленный на моем сервере Ubuntu 18.04 с множеством настроенных виртуальных хостов, я использую разные open_basedir для каждого виртуального хоста, недавно мне пришлось изменить обычный php7.2 на php-fpm, чтобы иметь возможность включить http2, поскольку mpm_prefork несовместим с http2, поэтому я отключил его и использовал mpm_event и php fast cgi. Суть здесь: мне пришлось переключить синтаксис open_basedir с:
php_admin_value open_basedir/путь
К этому синтаксису:
SetEnv PHP_ADMIN_VALUE "open_basedir = / путь"
Я заметил, что новый синтаксис не работает должным образом, многие сайты были сломаны, журналы ошибок Apache показали, что сломанные страницы жаловались на то, что им не разрешен доступ к файлам, ссылаясь на неправильную настройку baseir, например, страницы на site1 не будут работать, потому что их путь не разрешен на сайте2, произошло некоторое перекрытие, и я не знаю, как это исправить.
Журнал показывает что-то вроде:
[Среда, 25 августа, 18:18:29.814771 2021] [proxy_fcgi:error] [pid 24671:tid
139761735845632] [клиент xx.x.x.x:5539] AH01071: ошибка «PHP
сообщение: Предупреждение PHP: Неизвестно: действует ограничение open_basedir.
Файл (/var/www/site2/landing.php) находится за пределами допустимого пути:
(/var/www/site1/:/tmp/) в Unknown в строке 0PHP сообщение: Предупреждение PHP:
Неизвестно: не удалось открыть поток: операция не разрешена в Неизвестно на
строка 0Не удалось открыть основной скрипт: /var/www/site2/landing.php
(Операция не разрешена)'