【问题标题】:Apache 403 after /var/www backup/var/www 备份后的 Apache 403
【发布时间】:2014-04-21 00:38:10
【问题描述】:

我在 RHEL 服务器上运行一个 WordPress 站点,我每周都会对 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)完成的,我在 7 点将 WP 升级到 3.9。某些功能与 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/,我也无法访问 my.si.te/test/ (/var/www/html/test/) 处的纯 index.html。相同的消息:您无权访问此服务器上的 /(blog/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

会是什么问题,我该如何解决?谢谢!

【问题讨论】:

  • 文件是否在正确的位置(我无法识别您的所有tar 标志)并具有正确的所有者和权限?您是否启用了 SELinux,并且您在恢复的内容上仍然有正确的 httpd 标志? /var/log/httpd/error_log 中有什么具体内容吗?
  • @Rup 感谢您的及时回复!是的,所有者和权限在恢复前后保持不变,我不确定 httpd 'flags' 是什么意思...... .htaccess 或 httpd.conf 的一部分?
  • 抱歉,忘记了正确的术语:它是一种 SELinux '类型'。如果您使用的是 SELinux,那么您需要确保所有恢复的文件都具有我认为是 httpd_sys_content_t 的 httpd 安全上下文类型,即 chcon -Rv --type=httpd_sys_content_t /var/www。但这只有在您使用 SELinux 时才有必要——是吗?
  • 数以百万计的感谢!我关闭了 SELinux,网站又回来了!然后我打开它并尝试了你提供的命令 - 它也有效!

标签: wordpress apache rhel


【解决方案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)

我选择通过 web 文件并让 selinux 保持打开状态:

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

如果 Ghost 博客平台 (blog.si.te) 正在运行,则可能需要额外的一行:

setsebool -P httpd_can_network_connect 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2017-02-28
    • 2016-09-30
    • 2011-09-13
    • 2015-02-12
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多