mcj777
27.01.2015 19:43
1
Приветствую!

После переноса WordPress сайта на VPS появилась такая проблема - при обновлении плагинов требуется постоянно вводить пароль FTP и запрещены все изменения в папках. К примеру, плагин кеширования выдает такой предупреждающий текст:

Warning: is_dir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): и т.д. много текста.

Это значит, что пользователю запрещен доступ к папке /tmp сервера. В принципе, он и не может быть разрешен. Главный вопрос в том, почему вдруг файлы стали писаться туда? И где нужно изменить прописанные пути к файлам и папкам с предыдущего места размещения сайта на текущие?

К сожалению, чего-то действительно полезного в сети найти не удалось. Очень много всего пересмотрел.

Есть здесь специалисты, которые помогут разобраться с данной проблемой? Где смотреть, что менять? На VPS стоят CentOS 6.5 и ISP Manager.

Заранее спасибо!
Евгений В.
28.01.2015 15:34
0
К сожалению, сказать в чём может быть причина сходу не могу. (возможно, права доступа неправильные, либо же владелец папки не тот что нужно).
Но если Вы сбросите данные для подключения к серверу (и имя/данные входа проблемного сайта) на мой email varenko@ukr-hosting.org - попробую помочь с решением вопроса.
mcj777
28.01.2015 15:48
0
Вроде проблему локализовал - временные файлы пишутся в папку /tmp сервера с правами 644 от владельца Apache. А далее возникает ступор.

Пробовал по разному настраивать open basedir в secure.conf и php.ini - не помогает. Также не могу понять, где в ISP Manager можно настроить группы пользователей и на эти группы назначить привилегии доступа.

Возможно какой-то глюк в самом ВордПрессе, попробую поставить его заново, уже на VPS.

Если проблема останется, свяжусь с вами, спасибо за ответ.
kysil
28.01.2015 23:26
0
Возможно какой-то глюк в самом ВордПрессе© mcj777

Не стоит, у меня такая же проблема только с другим движком (не WP). Проблему я также не решил. Там по идее он должен писать эти tmp файлы в домашнюю папку сайта tmp, но там VPS прописывает символическую ссылку. Копать нужно где-то в ISPmanager. Посмотрите на ихнем форуме, думаю там есть ответ. Можно и самому зарегистрироваться и поставить такой вопрос там. Сори за каламбур.
Евгений В.
28.01.2015 23:54
0
Кстати, тут есть нюанс
File(/tmp) is not within the allowed path(s):© mcj777

Эта папка (/tmp) лежит в корне диска, куда пользователям доступа нет. Только руту.
Мне кажется стоит в папке сайта создать файл info.php с содержимым
<?php
phpinfo();
?>


И зайдя на адрес_сайта/info.php посмотреть значение переменной upload_tmp_dir и TMPDIR - что там стоит. При необходимости - изменить на нужное.
kysil
29.01.2015 00:09
0
У меня upload_tmp_dir отображается по пути: /var/www/kysil/data/mod-tmp , но скрипт почему-то ломится в /tmp . Ссылка tmp лежит по адресу /var/www/kysil/data , владелец прав www-data , но ссылается она на ~/mod-tmp
TMPDIR - вообще нету такого поля, в смысле не "no value", а директивы.
Евгений В.
29.01.2015 00:28
0
Ещё можно попробовать вот так:
1. Создать каталог "tmp" в корне ВП и дать ему права на запись.
2. Добавить в конфиг (wp-config.php)
(до строки с "дальше не редактируем"):
define(‘WP_TEMP_DIR’,'tmp’)
или
define(‘WP_TEMP_DIR’,'/var/www/kysil/data/tmp’)
---
Но сам не пробовал, поэтому - просто как вариант.
kysil
29.01.2015 15:30
1
при обновлении плагинов требуется постоянно вводить пароль FTP© mcj777

Решается путем добавления строк в wp-config.php

/** The FTP Collate. Don't change this if in doubt. */
define('FTP_HOST', 'localhost');
define('FTP_USER', 'юзернейм');
define('FTP_PASS', 'блаблабла');
mcj777
29.01.2015 17:09
0
Решается путем добавления строк в wp-config.php

/** The FTP Collate. Don't change this if in doubt. */define('FTP_HOST', 'localhost');define('FTP_USER', 'юзернейм');define('FTP_PASS', 'блаблабла');
© kysil

Спасибо! Такой вариант работает. Я знал, что все должно быть просто, но никак не мог найти этот код )

Нашел еще один путь к временной папке по адресу /var/www/ПОЛЬЗОВАТЕЛЬ/data/mod-tmp куда перенаправляются файлы из /tmp Изменил права 777 на эту папку и файлы для пользователя apache. Но эффекта не дало. Попробуйте поиграться с правами, возможно у вас заработает. Пути актуальны для ISPmanager-Lite 4.4.10.23.

Просто у меня плюс ко всему этому сам WP тупит, вылетая с ошибкой 500 (пустой экран) при сохранении настроек. Поэтому нужно начать решать задачу с его переустановки, а потом уже шаманить VPS. Кстати, кто-нибудь знает, есть ли хорошее расширение для подробного тестирования WP на предмет ошибок? Я пока не нашел.

Также в сети нашел такие ссылки, возможно пригодятся
ru.5.ispdoc.com/index.php/Конфигурационный_файл_ISPmanagerru.5.ispdoc.com/index.php/ISPmanager:_Конфигурация_web_сервера

Конфигурационный файл для ISPmanager-Lite 4.4.10.23 можно найти здесь /usr/local/ispmgr/etc/ispmgr.conf
kysil
29.01.2015 17:26
0
На хостинге "Хостинг Украина" таких траблов нету. У них сервер настроен очень хорошо. На том же мирохосте - также проблем с правами валом. Но ребята из "Хостинг Украина" на этот счет таят большой секрет :D , как нужно правильно конфигурировать open_basedir
mcj777
29.01.2015 17:41
1
Нашел еще одно решение здесь yousite.ru/?p=1620

Как добавить каталог в open_basedir в ISPManager

ОШИБКА

open_basedir restriction in effect. File(/tmp//sss.tmp) is not within the allowed path(s)

В ФАЙЛ /usr/local/ispmgr/etc/ispmgr.conf ДОБАВИТЬ

ExtraOpenBasedir :/tmp

ПЕРЕЗАПУСТИТЬ ПАНЕЛЬ

killall -9 -r ispmgr

ВНОВЬ СОЗДАВАЕМЫЕ www-домены БУДУТ С КАТАЛОГОМ /tmp В open_basedir.

А ДЛЯ ИСПРАВЛЕНИЯ НАСТРОЕК ДЛЯ СУЩЕСТВУЮЩИХ ДОМЕНОВ НЕОБХОДИМО ОТКЛЮЧИТЬ/ВКЛЮЧИТЬ ПОДДЕРЖКУ PHP ДЛЯ ДОМЕНА.

У меня все добавилось нормально. Далее посмотрим, что из этого выйдет. Кстати, чтобы не бегать в поисках настроек, для WP есть хорошее расширение, показывающее детальную информацию по серверу wordpress.org/plugins/wp-serverinfo/
kysil
29.01.2015 18:19
0
Спасибо! Все получилось! :)
Желательно это добавить в Базу знаний "Хостинг Украина"
mcj777
29.01.2015 19:09
0
Спасибо! Все получилось! :)
Желательно это добавить в Базу знаний "Хостинг Украина"
© kysil

У меня тоже заработало )

Отловил все ошибки WordPress безо всякого расширения все с помощью того же кода в wpconfig.php

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);


где true - включено, false - отключено. Первая строка - вкл/выкл режима отладки. Вторая строка - вкл/выкл записи ошибок в log файл (что-то я его не нашел). Третья строка - вкл/выкл отображения ошибок на сайте.

Настроил корректные права на нужные папки и файлы - кеш заработал, картинки стали загружаться, настройки стали сохраняться. Ошибка 500 ушла отдыхать.
Евгений В.
30.01.2015 16:12
1
Желательно это добавить в Базу знаний "Хостинг Украина"© kysil

Готово.
Как добавить каталог в open_basedir в ISPManager
Тема закрита.