我目前正在Amazon EC2服务器上运行WordPress 4.5.3版的一个实例。它使用:
CentOS 7(OS)并已启用SELinux服务器运行Apache时使用mod_security
和mod_evasive
网站名称为The Rambling New Yorker.
不久前,我使用Let\'s Encrypt. 这个过程相当简单,我现在已经保证了前端的安全。我甚至安装了一个插件,可以将非SSL流量重定向到安全站点。
不幸地the admin dashboard is broken. 我一切换,它就开始显示如下:
我已将URL(在数据库中,而不是通过仪表板)更改为SSL版本并启用了“
Force SSL Admin“在配置文件中。登录页面正常。
当我禁用所有插件时,切换曾经起作用。一个接一个的让我相信WP Super Cache 可能是问题所在,但当我在删除插件后进行切换时,问题再次出现。
正在禁用mod_security
消除了这个问题,但Apache错误日志中没有有用的错误消息,所以我不知道是什么让它不安。
唯一的线索是load-styles.php
和load-scripts.php
返回a403 error
:
但是,这些文件具有相同的所有权(
apache:apache
) 和权限
wp-admin
文件夹(
644
). 所以我是无知的。有人知道潜在的原因是什么吗?
Update - 8/26
根据一些研究,我得出结论,下面评论中提到的PHP错误与没有安装特定的扩展mbstrings有关。不幸的是,当我去安装它时,我试图安装错误的版本,然后卸载了一些包,添加了Remi存储库,然后安装了一些与旧版本不完全相同的包。我的服务器运行PHP 5.6.24,但有些包可能来自5.4。WordPress停止工作。在犹豫了一会儿之后,我将服务器回滚到开始SSL冒险之前创建的AMI。
本周末我将再次尝试迁移到SSL。如果问题再次出现,我会回到这里。如果没有,我会发布一个答案。无论哪种方式,如果可能的话,我都会避免更改数据库。
Update 2 - 8/27<秘密成分是php56u mbstrings包。安装后,脚本在命令行中运行良好,尽管GUI不断抛出AJAX错误,只会搜索三个表。CLI脚本替换了http://www.ramblingnewyorker.com 具有https://www.ramblingnewyorker.com. 然而,问题依然存在。它出现在安全站点建立的那一刻。禁用mod\\u security,或将以下行添加到我的ssl。conf文件确实修复了此问题:
<LocationMatch "/wp-admin/load-scripts.php">
<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>
</LocationMatch>
<LocationMatch "/wp-admin/load-styles.php">
<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>
</LocationMatch>
由于安全问题,我已经将这些行注释掉了。这似乎与mod\\u安全性有关,但我在Apache日志文件中找不到任何错误消息。