Назад |
Перейти на главную страницу
Общий хостинг Wordpress (chrooted SFTP), проблемы с плагинами
У меня есть сервер (Ubuntu 16.04), на котором разные пользователи могут создавать свои собственные сайты Wordpress. Некоторая информация:
- Apache запускается от имени каждого пользователя с mpm-itk.
- Пользователи chrootted в их домашний каталог.
- Пользователи не могут использовать PHP вне своего домашнего каталога.
- Разрешения - это apacheuser: apacheuser рекурсивно с 755 и 644 (также пробовал 777)
- public_html находится в их домашнем каталоге.
sshd-config используется:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
Пользователи могут использовать SFTP, загружать файлы WP и продолжать свой путь.
Проблема связана с обновлением или удалением плагинов (добавление, активация и деактивация работает нормально). Я получаю ошибку Не удалось полностью удалить плагин (-ы) akismet / akismet.php
В журналах ошибок ничего нет.
Везде, где я ищу, у меня есть несколько вариантов:
- Установите подключаемый модуль SFTP Updater и определите FS_METHOD как ftpsockets. Это работает, но я хочу избежать этого, чтобы установка была чистой, а пользователи были довольны. Я действительно администрирую только сервер, а не сами WP-сайты, и заставлять всех пользователей устанавливать плагин не очень хорошо.
- Libssl / php-ssl. Я получаю сообщение о входе в систему, но оно не работает.
- Ключи SSH. Думаю, я перепробовал все существующие руководства. Сеанс SSH отключается мгновенно. Имея те же проблемы, что и у этого парня Проблемы с автоматическим обновлением Wordpress SFTP Это также сбивает с толку пользователей. Он также должен работать с несколькими версиями PHP (FPM).
- определите FS_METHOD как «прямой» в wp-config.php. Не работает у меня, как и исходная ошибка.
Кто-нибудь знает, что я могу сделать, чтобы решить эту проблему? Пожалуйста, дайте мне знать, если вам нужна какая-либо информация.
Спасибо!
Это решено.
Оказалось, что это функция PHP unlink (), которая была отключена с помощью disable_functions в php.ini. Убрал оттуда и теперь все работает.