Плагины загружаются и устанавливаются нормально, обновление WordPress не удается.

Вопрос или проблема

Я правильно настроил все разрешения и директории/файлы в соответствии с WordPress. Добавление плагинов/установка/обновление работает идеально, но когда дело доходит до обновления до 4.7.2, он запрашивает у меня данные FTP или, если я принудительно использую FileSystem (прямое) в конфигурационном файле WP, он говорит, что не смог обновить из-за некорректных разрешений файлов или невозможности создать директорию.

Буквально все разрешения файлов и пользовательские разрешения настроены в соответствии с рекомендациями wordpress, однако я не могу обновить ядро.

Файл журнала действительно говорит о запрещении доступа на строке 257 файла системы, когда он пытается скопировать файл, но, как я уже сказал, правильные разрешения были установлены, если только в этом конкретном случае обновление ядра выполняется под другим пользователем, чем apache?

Ручная установка не рассматривается, так как процесс должен быть бесшовным для операций, чтобы поддерживать без необходимости дополнительного знания FTP/SSH.

Может кто-то порекомендовать решение, которое действительно работает?

1) Я настроил chown на моего пользователя apache (это требуется для обновления плагинов) 2) все разрешения 755/644 (это также требуется для обновления плагинов) 3) ОС была обновлена, включая openssl (Redhat Enterprise)

Для обновления wordpress определите следующую константу в файле wp-config.php

define('FS_METHOD', 'direct');
define( 'FS_CHMOD_DIR', 0777 );
define( 'FS_CHMOD_FILE', 0777 );
define('FTP_BASE', '/var/www/test/');//каталог проекта
define('FTP_CONTENT_DIR', '/var/www/test/wp-content/'); //определите путь к директории wp-content
define('FTP_PLUGIN_DIR ', '/var/www/test/wp-content/plugins/'); //определите путь к директории плагинов
define( 'WP_AUTO_UPDATE_CORE', true );
//определите данные ftp
define('FTP_USER', 'test');
define('FTP_PASS', 'test@123');
define('FTP_HOST', 'ftp.test.com');

Надеюсь, это поможет вам разобраться с вашей проблемой.

Я видел эту ‘проблему’ с Centos.

Часто люди предполагают, что пользователь использовал неправильные настройки разрешений для папок (755) и/или файлов (644), или настройки владельца (apache:apache).
Но с Centos (7) это может быть вопросом безопасности, orchestrированным SELinux.

Возможно, следующее поможет некоторым людям решить эту неприятную проблему.

  • ОС: Centos 7
    Зайдите в терминал (используйте SSH-доступ!) и введите следующее:

    chcon -R -t httpd_sys_content_t /var/www/html/wordpress
    и
    chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
    и, возможно, также выполните restorecon -Rv /var/www/html, чтобы быть уверенным.

    Обычно перезагрузка apache не требуется, но не повредит также перезапустить его, используя следующий код
    systemctl restart httpd

Это должно решить проблему обновления/апгрейда для установок ядра WordPress.
пс, это пример, у некоторых может быть другой корень документа!

Некоторые ресурсы с гораздо более глубокими объяснениями могут быть:
Francispereira или Ежедневник Лисендера и, конечно же, SELinux

Надеюсь, это поможет вам или другим пользователям (как это помогло мне) в их пути.

Отключите FTP всплывающее окно повсюду в WordPress, просто добавьте следующую строку в
файл wp-config.php

define(‘FS_METHOD’, ‘direct’);

Ответ или решение

Обновление ядра WordPress может представлять некоторые сложности, особенно когда возникают проблемы с правами доступа и конфигурацией сервера. В вашем случае, несмотря на правильные настройки прав на файлы и директории, обновление WordPress 4.7.2 не удается, и система запрашивает FTP-данные, либо выдает ошибку о невозможности создать директорию при использовании метода "Direct" в конфигурации. Давайте рассмотрим несколько ключевых аспектов, которые могут помочь в решении данной проблемы.

1. Проверка прав доступа и владельца файлов

Для начала убедитесь, что все права доступа и владельцы настроены корректно. Для WordPress рекомендуется следующий набор прав:

  • Директории: 755
  • Файлы: 644

Однако, даже при правильных настройках возможны проблемы с правами, например, из-за особенностей конфигурации вашего сервера (например, SELinux).

2. SELinux и его влияние

На дистрибутивах CentOS и Red Hat Enterprise Linux SELinux может блокировать записи в директории, что приведет к ошибкам при обновлении WordPress. Чтобы проверить и изменить контекст безопасности для вашей директории WordPress, выполните следующие команды в терминале:

chcon -R -t httpd_sys_content_t /var/www/html/wordpress
chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
restorecon -Rv /var/www/html

Эти команды установят корректные контексты безопасности для ваших файлов. После этого рекомендуется перезапустить сервер Apache:

systemctl restart httpd

3. Настройка конфигурационного файла wp-config.php

Чтобы устранить запросы на ввод FTP-данных и использовать прямой метод обновления, добавьте в ваш файл wp-config.php следующие строки:

define('FS_METHOD', 'direct');
define('FS_CHMOD_DIR', 0755);
define('FS_CHMOD_FILE', 0644);

Эти настройки сообщат WordPress использовать прямой метод для обновлений, минуя FTP, а также установят разрешения для файлов и директорий.

4. Проверка переменных окружения и системного пользователя

Иногда может возникнуть ситуация, когда процесс обновления выполняется от имени другого пользователя, не имеющего необходимых прав. Убедитесь, что веб-сервер (обычно это apache или nginx) имеет права на запись в директории WordPress. Возможно, вам нужно изменить владельца на своего веб-сервера с помощью команды:

chown -R apache:apache /var/www/html/wordpress

Замените apache на имя вашего веб-сервера, если это необходимо.

5. Альтернативные решения

Если ни одно из вышеуказанных решений не поможет, и вы по-прежнему столкнетесь с проблемами, рассмотрите возможность временного отключения SELinux на сервере. Но учтите, что это может создать риски безопасности, и лучше использовать это в качестве последнего средства:

setenforce 0

Затем попробуйте выполнить обновление WordPress снова.

Заключение

Решение проблемы с обновлением WordPress может потребовать внимания ко многим деталям, включая права доступа, конфигурацию SELinux и настройки вашего веб-сервера. Следуя представленным выше шагам, вы сможете устранить возникшие проблемы и успешно обновить ядро WordPress. Безопасность и стабильность вашей установки являются критически важными, поэтому важно следить за правильными настройками прав и конфигурациями.

Оцените материал
Добавить комментарий

Капча загружается...