Вопрос или проблема
Я правильно настроил все разрешения и директории/файлы в соответствии с 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. Безопасность и стабильность вашей установки являются критически важными, поэтому важно следить за правильными настройками прав и конфигурациями.