Apache 403 после резервного копирования /var/www

Я запускаю сайт WordPress на сервере RHEL и каждую неделю делаю резервную копию базы данных WP MySQL и папки /var/www:

mysqldump -uroot -p******** blog -l -F > /bak/blog.sql
tar -jcpv -f /bak/www.tar.bz2 /var/www

Последнее резервное копирование было сделано в 6 утра (UTC +8) сегодня утром, и я обновил WP до 3.9 в 7. Некоторые функции были несовместимы с 3.9, поэтому я решил откатиться. Восстановил базу и папку:

mysql -uroot -p blog < /bak/blog.sql
tar -jxv -f /bak/www.tar.bz2 -C /

а затем сайт дал мне 403. Я перезапустил Apache и перезагрузил сервер, но это не помогло. Сайт работал до того, как я обновил WP, поэтому я думаю, что conf.s одинаковы до и после резервного копирования/восстановления, поэтому проблема может быть не в этом. Моя домашняя страница перенаправляется на my.si.te/blog/, и я также не могу посетить чистый index.html на my.si.te/test/ (/var/www/html/test/). То же сообщение: У вас нет прав доступа к /(блог/тест) на этом сервере.

[Mon Apr 21 08:42:48 2014] [crit] [client 144.*.*.*] (13)Permission denied: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Mon Apr 21 08:42:56 2014] [crit] [client 157.*.*.*] (13)Permission denied: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Mon Apr 21 08:42:58 2014] [crit] [client 178.*.*.*] (13)Permission denied: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://my.si.te

В чем может быть проблема и как я могу это исправить? Спасибо!


person leoce    schedule 21.04.2014    source источник
comment
Вернулись ли файлы на диск в правильных местах (я не узнаю все ваши tar флаги) и с правильными владельцами и разрешениями? У вас включен SELinux, и у вас все еще есть правильные флаги httpd для восстановленного контента? Есть ли что-то конкретное в /var/log/httpd/error_log?   -  person Rup    schedule 21.04.2014
comment
@Rup спасибо за быстрый ответ! Да, владельцы и разрешения остаются прежними до и после восстановления, и я не уверен, что означают «флаги» httpd... .htaccess или часть httpd.conf?   -  person leoce    schedule 21.04.2014
comment
Извините, забыл правильный термин: это «тип» SELinux. Если вы используете SELinux, вам нужно убедиться, что все восстановленные файлы имеют тип контекста безопасности httpd, который, как мне кажется, httpd_sys_content_t, то есть chcon -Rv --type=httpd_sys_content_t /var/www. Но это необходимо только в том случае, если вы используете SELinux — не так ли?   -  person Rup    schedule 21.04.2014
comment
Миллионы благодарностей! Я отключил SELinux, и сайт вернулся! Потом включил и попробовал предложенную вами команду — тоже работает!   -  person leoce    schedule 21.04.2014


Ответы (1)


Самый простой способ (требуется перезагрузка): vim /etc/selinux/config (RedHat/CentOS) и установить

SELINUX=disabled

и перезагрузиться. Или сохраните selinux с предупреждающим сообщением (требуется перезагрузка), конфигурацией vim selinux и установите

SELINUX=permissive

Или немедленная команда будет (временный эффект):

echo 0 > /selinux/enforce
# echo 1 > /selinux/enforce (put selinux back)

Я решил пропустить веб-файлы и оставить selinux включенным:

chcon -Rv --type=httpd_sys_content_t /var/www

Если запущена платформа для ведения блогов Ghost (blog.si.te), может потребоваться дополнительная строка:

setsebool -P httpd_can_network_connect 1
person leoce    schedule 09.05.2014