Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Веб сервер
  • Search

PHP Warning: file_exists(): open_basedir restriction in effect.

Вопросы по работе Веб сервера
Apache + Nginx, Nginx + PHP5-FPM
Post Reply
  • Print view
Advanced search
5 posts • Page 1 of 1
Borisss!
Posts: 8
Joined: Sat Sep 03, 2016 8:10 am

PHP Warning: file_exists(): open_basedir restriction in effect.
  • Quote

Post by Borisss! » Sat Sep 03, 2016 8:35 am

Ситуация следующая: Пытаюсь связать Wordpress c форумом XenForo
Для этого используется плагин 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. Установка новая, шаблоны стандартные...
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: PHP Warning: file_exists(): open_basedir restriction in effect.
  • Quote

Post by skurudo » Mon Sep 05, 2016 1:22 pm

Отключать не нужно, достаточно добавить дополнительные директории в опцию open_basedir

Смотреть в конфигах - /home/$user/conf/web/apache2.conf
Top

Borisss!
Posts: 8
Joined: Sat Sep 03, 2016 8:10 am

Re: PHP Warning: file_exists(): open_basedir restriction in effect.
  • Quote

Post by Borisss! » Tue Sep 06, 2016 9:22 am

Кажется сам допер уже на выходных, но все-таки уточню...
Я добавляю дополнительные директории в опции open_basedir в файле конфига Апача (у нужного пользователя). Т.к. у меня CentOS, то файл конфига, видимо, будет httpd.conf
Там есть 2 места, в которых прописана опция open_basedir: в разделе <Directory> и "в корне" (без всяких разделов). Нужно в обоих местах исправлять или только в каком-то одном?
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: PHP Warning: file_exists(): open_basedir restriction in effect.
  • Quote

Post by skurudo » Tue Sep 06, 2016 11:50 am

У вас основная часть конфига выглядит вот так:

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
Top

Borisss!
Posts: 8
Joined: Sat Sep 03, 2016 8:10 am

Re: PHP Warning: file_exists(): open_basedir restriction in effect.
  • Quote

Post by Borisss! » Wed Sep 07, 2016 5:46 am

Странно, но конфиг одного из виртуальных хостов у меня выглядит следующим образом:

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 в двух местах. Это ошибка или так и должно быть? И соответственно, путь вставлять в оба значения или только то, которое в разделе "Directory"?
Кстати, когда дописываю в open_basedir новый путь, при постинге сообщения возникает 500-я ошибка (upstream prematurely closed connection while reading response header from upstream)
Есть идеи, куда копать в этом случае?
Top


Post Reply
  • Print view

5 posts • Page 1 of 1

Return to “Веб сервер”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password