直到今天,我的WordPress多站点安装还不错。
今天早上,我决定将web服务器的内容从/var/www/html/
到/var/www/
.
我搜索了所有/var/www/html/
硬编码,并转储我的WordPress MySQL数据库以检查是否有指向它的链接。我在中找到的唯一文件/var/www/html/wordpress/
那就是WPCACHEHOME
进入wp-config.php
, 所以我改了。WordPress数据库中唯一的引用是recently_edited
条目,因此无需更改它。
移动后/var/www/html/*
到/var/www/
并调整Apache配置文件中的所有路径以指向/var/www/
而不是/var/www/html/
, 我重新启动了服务器并进行了检查。其他网页也可以,但是example.com/wordpress/
抛出403(禁止)错误。
我检查了我能想到的一切,在网上搜索了“wordpress multisite 403”,并检查了人们建议的一切(90%是关于权限的,9.9%是关于.htaccess
), 但什么都没用。我放弃了,把一切都恢复原样,但它仍然给出了403分。
我可以访问管理页面以及其他博客(例如。,example.com/wordpress/foobar/
), 这只是主要的博客(example.com/wordpress/
) 这是403。即使example.com/wordpress/index.php
给出相同的错误。
以下是我检查、测试、尝试和确认的内容:
- ✓ 浏览器缓存已清除✓ 所有者和组
/var/www/
它下面的一切都是www-data
- ✓ 下所有目录的权限
www
是775✓ 下所有文件(应可访问)的权限www
是664(否,将其分别设置为755和644将无法修复。)
✓ Apache服务已重新启动✓ Apache配置文件正确✓ Web服务器已重新启动✓ wp-config.php
是否正确✓ 所有路径都包含尾部斜杠(/var/www/html/
)✓ .htaccess
尚未修改,但我尝试对其进行重命名,并将其替换为WPMU的新的、经确认正确的副本✓ wordpress/index.php
确实存在且未修改✓ WordPress数据库自上次运行以来未被触及✓ 未对WPMU格式(子目录/子域)进行任何更改✓ 下的唯一文件wordpress/
已修改的是wordpress/wp-config.php
(已恢复)✓ 中的目录wordpress/wp-content/cache/
已删除(blogs
, autoptimize
, 和supercache
) 但使用正确的权限和所有者重新创建(自动优化其文件夹中重新创建的目录和文件)✓ 没有与问题博客同名的目录(它是主要博客,那会是什么,/var/www/html/blogs//
? )是否有人对可能出现的问题有任何想法或建议尝试?
SO网友:Ted Stresen-Reuter
403禁止是HTTP错误。这意味着web服务器没有读取请求的文件所需的权限。毫无疑问,在调查其他潜在的错误配置之前,您应该先关注这一点。
根据您使用的服务器类型,除了解析文件系统权限外,如果您使用的是RedHat或类似版本,还可能需要在SELinux中解析权限问题。
通常,确切的错误将出现在HTTP错误日志中(/var/log/apache2/example.com-error或类似内容)。事实上,您说即使您将所有内容移回原来的状态,仍然存在错误,这向我表明,文件所有权发生了变化,这仍然是一个文件系统权限问题。要进行验证,可以查看apache。conf文件以查看apache运行的用户,并确保该用户也拥有这些文件,或者与您用来移动文件的用户位于同一组中。
grep -R -E \'^User \' /etc/apache2/*
了解apache配置为以什么身份运行。
如果您确定文件所有权和权限是正确的,那么apache仍有可能在错误的位置查找文件,并且没有找到任何文件,而是以某种方式拒绝任何访问。检查日志。这就是答案所在。
HTH公司