Wordpress не может записать новый файл .htacess или изменить тот, который я вставил. Я установил владельцем apache: apache, а права доступа к файлу - 644.
Обновление - я читал для часов на постах, как у меня. Похоже, критерии таковы:
Вывод ls -Z .htaccess
:
-rwxr--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/.htaccess
Вкл. система, в которой активен SELinux (что по умолчанию в CentOS), установка обычных разрешений недостаточна, вы также должны убедиться, что файлы имеют правильный контекст SELinux для процесса, который должен получить доступ к файлу.
Ваш Файл .htaccess имеет контекст SELinux httpd_sys_content_t
, что делает его доступным для чтения только веб-серверу. Чтобы сделать его доступным для записи на веб-сервер, вам нужно изменить этот контекст. У меня сейчас нет доступной установки CentOS для ее тестирования, но быстрый поиск в Интернете по запросу wordpress selinux
показал, что контекст public_content_rw_t
должен быть подходящим. Вы можете изменить контекст с помощью этой команды:
chcon -t public_content_rw_t .htaccess
Обратите внимание, что вы также сделаете каталоги plugins
, themes
и uploads
доступными для записи аналогичным образом, если вы хотите, чтобы WordPress мог удобно загружать файлы и устанавливать темы и плагины.
От имени какого пользователя вы запускаете экземпляр сервера? Если вы не используете SUExec для своих исполняемых сценариев, вы сможете определить правильного пользователя, запустив:
ps -ef | egrep '(httpd | apache2 | apache)' | grep -v $ (whoami) | grep -v root | голова -n1 | awk '{print $ 1}'
Разрешения 0744 не нужны. Не будет выполняться .htaccess.
Либо вы измените владельца на root и сделаете разрешения 0600 (только запись, чтение владельцем), это рекомендуемое решение.
Если вы хотите сделать его всемирным с возможностью записи (НЕ РЕКОМЕНДУЕТСЯ!), вы можете установить режим 0666.