“Unable to create directory”(Plesk + WordPress) .

Почти два дня ушло на поиски решения. Уже сколько раз говорю себе, что первым делом подумаю,а потом буду гуглить, но…Гугление началось, как всегда, с текста ошибки, выдаваемой WordPress’ом: “Unable to create directory”.  Ошибка эта появлялась в следующих случаях: при попытке обновить WordPress(WP) через его Консоль, при попытке загрузить новые плагины, темы и изображения.

Все найденные решения мне не помогали, собственно, я еще до того, как прибегнула к поиску проверила права на папки, все разрешила, но это не помогло. Не помогли и всякие строчки, которые предлагалось прописать в wp-config, только с медиафайлами помог совет – убрать галочку с “Помещать загруженные мной файлы в папки по месяцу и году” и выставление прав 775 на папку wp-content/uploads.

И тут, о чудо, возникла мысль: а что это вообще за группы-то такие psaserv и psacln… В них-то и крылась вся проблема, вернее, не в них конкретно а в панели управления хостингом Plesk, которой и принадлежат эти группы.

При установке чего-либо,в данном случае WordPress(WP), с помощью панели управления хостингом Plesk, Plesk назначает группой папки httpdocs psaserv, в все файлы в этой папке относит к группе psacln. А у web-сервера дефолтный аккаунт apache, который не входит в группу psacln. Соответственно, раз пользователь  не входит в группу, которая имеет права на запись в соответствующую директорию, то он и не может ничего там создать и в связи с этим-то и невозможно ни обновить WP, ни загрузить новые плагины.

Таким образом, решение проблемы кроется всего лишь в добавлении аккаунта web-сервера(apache) в группу psacln:

1) Открываем для редактирования файл /etc/group

2) Ищем в нем строчку psacln:x:505: и добавляем в конец слово “apache”, таким образом строчка теперь выглядит так: psacln:x:505:apache

(Вместо 505 может быть указано любое другое число)

Собственно, если бы до выполнения этих действий, никто бы права не менял,как попало…ага…то осталось бы просто перезапусти web-сервер командой service httpd restart . В противном случае нужно выполнить еще несколько команд, чтобы выставить корректных владельцев на директории.

3) Переходим в каталог с сайтом: cd /var/www/vhosts/[domain.com]

chown -R [username]:psacln httpdocs

chmod -R g+w httpdocs

find httpdocs -type d -exec chmod g+s {} ;

4) Перезапускам web-сервер: service httpd restart

5) Ура! С чистой совестью идем пить чай с пирогом 🙂

Continue Reading