Я читал в Интернете всевозможную информацию по этой теме. Я только что установил Wordpress на свой ящик Fedora 22, x64. Установка прошла отлично, я могу получить доступ к сайту, но не могу обновлять плагины вообще.
До сих пор я видел два разных направления:
1) Настройте FTP-сервер, который он запрашивает, и предоставьте ему правильные данные аутентификации для входа.
Я начал двигаться в этом направлении, но по-настоящему ударил кирпичную стену, когда не принял надлежащие учетные данные.
Затем в старом сообщении о переполнении стека я обнаружил
2) Добавить define('FS_METHOD', 'direct');
в wp-config.php
Обе эти проблемы связаны с проблемами разрешений файловой системы. Я пробовал сменить владельца / var / www / html. Во время настройки (в которой я следовал инструкциям Вот) в инструкциях говорится, что нужно установить владельца и группу на apache: apache. В нем также говорится об изменении политики SELinux для этих каталогов. Я попытался сменить владельца на несколько разных вещей, включая моего пользователя, www-data, www_data и все другие вещи, которые люди предлагают в Интернете. Однако ничего не изменилось, пока я не добавил указанную выше строку в wp-config.php. Он больше не запрашивает учетные данные FTP, но все равно не работает, и это почти наверняка из-за разрешений.
Во многих статьях говорилось о смене владельца на того пользователя, который запускал процессы php или php-fpm, но они не работают! Пытался ps aux | grep php
а также пробовал это с sudo, но единственный результат, который он показывает, - это процесс grep, ищущий php.
Я здесь немного затрудняюсь: следует ли мне отступить и снова попробовать направление FTP, или есть другой способ решить проблему с разрешениями? Я даже не уверен, какую папку он пытается создать при обновлении или установке плагина. Я сделал sudo find / -name wordpress
чтобы увидеть, есть ли другие папки вне / var / www / html, единственными другими папками, в которых было имя wordpress, были каталоги mysql.
Кроме того, я не уверен, что это подходящее место для этого поста, но оно показалось мне наиболее логичным (поскольку оно связано с сервером Wordpress / Apache, а не только с самим Unix / Linux), но не стесняйтесь перемещать его, если Неправильно разместил.
Спасибо за любую помощь, которую вы можете оказать.
РЕДАКТИРОВАТЬ: Также попытался добавить это define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );
define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );
в wp-config, как рекомендовано на веб-сайте WP. Не получилось, и удалил, как тоже рекомендовали. Также пытался изменить define('FS_METHOD', 'ftpsockets');
и, конечно же, он снова просит мои кредиты FTP. Я могу получить доступ к FTP со своего ноутбука, но когда я пробую те же учетные данные из интерфейса WP, он говорит, что не может подключиться. Пытался изменить имя хоста на localhost: 22 (поскольку он не изменился автоматически на порт 22, когда я выбрал SFTP), попробовал обычный FTP (который также открыт, временно), попробовал IP, не пробовал 10.0.0.1 или что-то еще localhost IP есть. Действительно биться головой о стену из пословиц.
Оказалось, это проблема доступа SELinux. Я как-то пропустил это, потому что средство устранения неполадок SELinux обычно выдает уведомление, если оно что-то блокирует. Пришлось зайти и проверить вручную.
Проблема возникла из-за этой команды в учебник не прав:
chcon -Rt httpd_sys_content_t /var/www/html
Так должно быть
chcon -Rt httpd_sys_rw_content_t /var/www/html
Изменение сразу решило проблему! Это было с
define('FS_METHOD', 'direct');
все еще в wp-config.php.
Огромное спасибо s1lv3r, который очень помог мне в процессе устранения неполадок!
Я часто сталкивался с этой проблемой даже с правильными правами доступа к файлам. Мое решение, которое обычно решает эту проблему, - просто отключить все плагины / темы и обновить только один конкретный плагин.