We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
PHP Warning: file_exists(): open_basedir restriction in effect.
PHP Warning: file_exists(): open_basedir restriction in effect.
Ситуация следующая: Пытаюсь связать Wordpress c форумом XenForo
Для этого используется плагин XenWord, который обращается из WP к XF напрямую (указывается абсолютный путь).
Долго не мог понять, почему связка не работает (а должно работать по инструкции), пока не увидел логи со следующей ошибкой:
Насколько я понял, один сайт не дает другому лезть в свои папки :)
Как мне разрешить обращение к данному файлу (данной папке), чтобы не нарушить безопасность сервера (отключать целиком open_basedir совершенно не хочется). И можно ли разрешить обращение к файлу/папке от другого пользователя?
P.S. Установка новая, шаблоны стандартные...
Для этого используется плагин XenWord, который обращается из WP к XF напрямую (указывается абсолютный путь).
Долго не мог понять, почему связка не работает (а должно работать по инструкции), пока не увидел логи со следующей ошибкой:
Code: Select all
PHP Warning: file_exists(): open_basedir restriction in effect. File(/home/forum/web/forum.site.com/public_html/library/XenForo/Autoloader.php) is not within the allowed path(s): (/home/forum/web/ru.site.com/public_html:/home/forum/tmp) in /home/forum/web/ru.site.com/public_html/wp-content/plugins/xenword-3.0.2.03/xenword.php on line 85, referer: http://ru.site.com/wp-admin/admin.php?page=xenword
Как мне разрешить обращение к данному файлу (данной папке), чтобы не нарушить безопасность сервера (отключать целиком open_basedir совершенно не хочется). И можно ли разрешить обращение к файлу/папке от другого пользователя?
P.S. Установка новая, шаблоны стандартные...
Re: PHP Warning: file_exists(): open_basedir restriction in effect.
Отключать не нужно, достаточно добавить дополнительные директории в опцию open_basedir
Смотреть в конфигах - /home/$user/conf/web/apache2.conf
Смотреть в конфигах - /home/$user/conf/web/apache2.conf
Re: PHP Warning: file_exists(): open_basedir restriction in effect.
Кажется сам допер уже на выходных, но все-таки уточню...
Я добавляю дополнительные директории в опции open_basedir в файле конфига Апача (у нужного пользователя). Т.к. у меня CentOS, то файл конфига, видимо, будет httpd.conf
Там есть 2 места, в которых прописана опция open_basedir: в разделе <Directory> и "в корне" (без всяких разделов). Нужно в обоих местах исправлять или только в каком-то одном?
Я добавляю дополнительные директории в опции open_basedir в файле конфига Апача (у нужного пользователя). Т.к. у меня CentOS, то файл конфига, видимо, будет httpd.conf
Там есть 2 места, в которых прописана опция open_basedir: в разделе <Directory> и "в корне" (без всяких разделов). Нужно в обоих местах исправлять или только в каком-то одном?
Re: PHP Warning: file_exists(): open_basedir restriction in effect.
У вас основная часть конфига выглядит вот так:
Править в одном месте:
Code: Select all
<Directory /home/user/web/domain.ru/public_html>
AllowOverride All
Options +Includes -Indexes +ExecCGI
php_admin_value open_basedir /home/user/web/domain.ru/public_html:/home/admin/tmp
php_admin_value upload_tmp_dir /home/user/tmp
php_admin_value session.save_path /home/user/tmp
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
</Directory>
Code: Select all
php_admin_value open_basedir /home/user/web/domain.ru/public_html:/home/admin/tmp
Re: PHP Warning: file_exists(): open_basedir restriction in effect.
Странно, но конфиг одного из виртуальных хостов у меня выглядит следующим образом:
Получается, что параметр open_basedir в двух местах. Это ошибка или так и должно быть? И соответственно, путь вставлять в оба значения или только то, которое в разделе "Directory"?
Кстати, когда дописываю в open_basedir новый путь, при постинге сообщения возникает 500-я ошибка (upstream prematurely closed connection while reading response header from upstream)
Есть идеи, куда копать в этом случае?
Code: Select all
<Directory /home/forum/web/domen.ru/public_html>
AllowOverride All
Options +Includes -Indexes +ExecCGI
php_admin_value upload_max_filesize 10M
php_admin_value max_execution_time 20
php_admin_value post_max_size 8M
php_admin_value memory_limit 32M
php_admin_flag mysql.allow_persistent off
php_admin_flag safe_mode off
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"
php_admin_value open_basedir /home/forum/web/domen.ru/public_html:/home/forum/
php_admin_value upload_tmp_dir /home/forum/tmp
php_admin_value session.save_path /home/forum/tmp
</Directory>
<Directory /home/forum/web/domen.ru/stats>
AllowOverride All
</Directory>
php_admin_value open_basedir /home/forum/web:/home/forum/tmp:/bin:/usr/bin:/usr/local/bin:/
<IfModule mod_ruid2.c>
RMode config
Кстати, когда дописываю в open_basedir новый путь, при постинге сообщения возникает 500-я ошибка (upstream prematurely closed connection while reading response header from upstream)
Есть идеи, куда копать в этом случае?