Ошибка установки: Не удалось создать каталог - CentOS 7


Я потратил более 6 часов, пытаясь выполнить 5-минутную установку. Я искал в Google снова и снова, но так и не нашел ничего, что действительно решило бы мою проблему, так что, надеюсь, кто-нибудь здесь сможет помочь.

Я установил Wordpress (используя эти инструкции ). Установка прошла, как и ожидалось. Однако теперь я не могу установить или удалить какие-либо плагины или темы. На моем сервере нет FTP (и я намерен сохранить его таким), поэтому я использую define('FS_METHOD','direct'); в functions.php.

Я использую Nginx на CentOS 7, поэтому я установил владельца /usr/share/nginx/html (рекурсивно) в nginx:nginx. В этом каталоге находится моя установка Wordpress. Я также установил для своих каталогов значение chmod 755, а для файлов - chmod 644, для каждого авторитетного ресурса, который я смог найти в Интернете. Насколько я могу судить, основываясь на том, что я могу найти в Интернете, эти вещи должны заставить его работать, и все же проблема сохраняется.

Что мне нужно сделать, чтобы исправить права доступа к файлам?

Я знаю Я, вероятно, буду помечен как дубликат, но уверяю вас, я испробовал все разумные идеи, которые смог найти в Интернете, как в Google, так и на этом сайте. Просто для протокола:

  • Chmod 777 на всем не заставляет его работать
  • Корень Chown для всего не заставляет его работать
  • Да, я использую -R в своих командах chown и chmod
  • Да, я несколько раз перезагружал свой сервер.
Author: mmm, 2018-05-06

1 answers

СЕЛИнукс был проблемой. Его применение, за неимением лучшего термина, переопределяло права доступа к файлам и запрещало Wordpress записывать в любой из файлов.

Чтобы решить эту проблему, я сделал следующее:

Проверьте, включен ли SELinux:

# getenforce

Если ответ "Принудительный", то SELinux включен, и это, вероятно, ваша проблема.

Просто для пущей убедительности давайте продолжим и убедитесь, что права доступа к файлам правильный:

# cd /path/to/wordpress/
# find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;

В этих командах мы перешли в каталог, в котором хранится Wordpress, а затем установили права доступа к файлам в справочной статье Wordpress Права доступа к файлам.

Прежде чем мы двинемся дальше, нам нужно заблокировать все принудительные меры SELinux для всего каталога Wordpress. Это гарантирует, что у нас нет никаких случайных уязвимостей:

# chcon -t httpd_sys_content_t /path/to/wordpress/ -R

Далее нам нужно установить SELinux, чтобы разрешить соответствующую запись доступ:

# cd /path/to/wordpress/
# chcon -t httpd_sys_rw_content_t wp-config.php
# chcon -t httpd_sys_rw_content_t wp-content -R

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

Как только вы выполните все эти шаги, перезапустите Nginx и посетите Wordpress в своем браузере. Теперь вы должны быть в состоянии успешно устанавливать/удалять плагины и темы.

Примечание: НЕ ОТКЛЮЧАЙТЕ SELINUX ПОЛНОСТЬЮ. Только измените принудительное исполнение, как указано выше. Отключение SELinux является серьезной проблемой безопасности уязвимость.

 4
Author: Kyle Martin, 2018-05-07 02:38:30