Page 1 of 1

PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Tue Aug 16, 2016 6:21 pm
by zooks
Обнаружил, что после переноса сайта на VestaCP не работает галерея.
Ниже ошибка целиком. Установка стандартная. Ubuntu 14.04.

Code: Select all

(ERROR @ /home/user/web/example.com/public_html/core/model/phpthumb/phpthumb.class.php : 1215) PHP warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/user/web/example.com/public_html:/home/user/tmp)

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Aug 17, 2016 1:53 am
by Stesh
Судя по ошибке, не задан upload_tmp_dir для пользователя, поэтому файл пытается писать в /tmp и получает закономерную ошибку, т.к. этот путь не разрешен в open_basedir.
Лечение простое - нужно переопределить для пользователя upload_tmp_dir
Например в шаблоне под апач это выглядит вот так

Code: Select all

php_admin_value upload_tmp_dir %home%/%user%/tmp

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Aug 17, 2016 10:20 am
by zooks
Stesh wrote: Лечение простое - нужно переопределить для пользователя upload_tmp_dir
Уже вылечил - добавил путь /tmp для open_basedir в конфиге Apache.
Сюда пишу лишь для того, чтобы админы занесли это в багтрекер.

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Aug 17, 2016 11:46 am
by Stesh
zooks wrote:
Stesh wrote: Лечение простое - нужно переопределить для пользователя upload_tmp_dir
Уже вылечил - добавил путь /tmp для open_basedir в конфиге Apache.
Сюда пишу лишь для того, чтобы админы занесли это в багтрекер.
Правильней переопределять - тогда у каждого пользователя свой tmp. Fix: просто добавить это в шаблоны, в новой версии это где-то потерялось.

Себе в шаблоны php-fpm я изменил/дописал

Code: Select all

env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = %home%/%user%/tmp
env[TMPDIR] = %home%/%user%/tmp
env[TEMP] = %home%/%user%/tmp

php_admin_value[upload_tmp_dir] = %home%/%user%/tmp

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Aug 17, 2016 8:27 pm
by zooks
Stesh wrote:Себе в шаблоны php-fpm я изменил/дописал
Да, так правильнее. А по какому пути лежат шаблоны?

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Aug 17, 2016 10:15 pm
by Stesh
Если nginx+apache, то добавлять надо в шаблоны апача /usr/local/vesta/data/templates/web/httpd/ (хотя там уже вроде есть)

Code: Select all

php_admin_value open_basedir %docroot%:%home%/%user%/tmp
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value session.save_path %home%/%user%/tmp
Если php-fpm, то шаблоны в /usr/local/vesta/data/templates/web/php-fpm/

Code: Select all

env[TMP] = %home%/%user%/tmp
env[TMPDIR] = %home%/%user%/tmp
env[TEMP] = %home%/%user%/tmp
php_admin_value[upload_tmp_dir] = %home%/%user%/tmp
php_admin_value[session.save_path] = %home%/%user%/tmp
PS: можно вынести в багтрекер

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Sat Nov 19, 2016 9:21 pm
by bookngo
Это просто трындец какой-то. У меня на 2 сайтах те же картинки на поддомене лежали, + что-то там плагины туда же складывали.
И все это рухнуло в одночасье когда на новый сервак переносил. Замучался искать что не так с моими сайтами. А оказывается просто не предусмотрено, что в рамках одного акка скрипты могут лазить за пределы своего домена.

Re: PHP warning: realpath(): open_basedir restriction in effect. (/tmp)

Posted: Wed Dec 07, 2016 3:12 pm
by skurudo
bookngo wrote:Это просто трындец какой-то. У меня на 2 сайтах те же картинки на поддомене лежали, + что-то там плагины туда же складывали. И все это рухнуло в одночасье когда на новый сервак переносил. Замучался искать что не так с моими сайтами. А оказывается просто не предусмотрено, что в рамках одного акка скрипты могут лазить за пределы своего домена.
Предусмотрено-не предусмотрено? Гибкость и безопасность главнее. Предусмотрен более безопасный вариант, но есть и альтернативы -- пожертвовать безопасностью, выключив open_basedir или дописать в эту опцию дополнительные пути.