我有一个网站在AWS t2上运行Photorati主题版本4.9.3。micro运行Amazon Linux。我将PHP 5.6与PHP fpm和最新版本的Nginx一起使用,Nginx由几个模块编译而成。我在网站前面有CloudFlare,但它只接受来自CloudFlare的连接,不直接接受。
一个运行Photograti的Wordpress 4.5站点持续下降,因为出于某种原因,wp\\U选项表中的siteurl不断更改为
https://www.example.com/wp-login.php/wp-content/themes/photocrati-theme/styles/wp-admin/wp-admin/wp-admin/wp-content/themes/photocrati-theme/styles/wp-admin/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles/wp-content/themes/photocrati-theme/styles
我可以用下面的SQL来修复它,但这很烦人,会导致停机。我已经编写了脚本,所以cron每五分钟运行一次——显然这不是一个很好的解决方案,但在我能够正确修复它之前,它会一直运行。
update wp_options set option_value = "https://www.example.com/" where option_id = 1
我有三个其他网站在同一台服务器上,这是很好的。没有运行Photorati-他们运行各种其他主题。据我所知,最近没有什么变化——大约一周前,我从Nginx切换到PHP 5.6,但这是在我做出更改后3-5天开始的。所有站点都运行相同的插件,如下所示。我已经在RDS上设置了MySQL查询日志,也许这会给我一个提示。
Akismet
CloudFlare
Contact Form 7
Contact Form DB
Google Analytics by MonsterInsights (it just changed its name to this)
Remove query strings from static resources
Ultimate Nofollow
UpdraftPlus - Backup/Restore
Yeost SEO
Photocrati的支持人员回答说,他们不知道发生了什么。
我用securi(插件和网站)和Wordfence进行了网站安全扫描。未发现任何问题。
文件权限都设置得非常严格,但仍然允许通过web ui进行自动更新和插件/主题安装。我可以看到数据库中正在执行的SQL,当我在访问日志中查找任何恶意的内容时,那里没有什么重要的内容-一个对博客类别无影响的查询。
有人见过类似的东西吗?有没有关于如何解决根本问题的建议?我怎么才能找到这个?我需要找出哪行代码正在运行该查询。
To be clear - 我可以在网站宕机时很容易地将其打开,我非常感谢您的帮助,找出它发生的原因。我是一名前enterprize开发人员,所以我技术相当熟练,我已经使用Wordpress好几年了,我对它很在行-我只是不为它开发,所以我真的不知道问题所在。
请注意,我首先在这个网站上发布了这个问题,但有人告诉我这个网站不支持。我把它贴在服务器故障上,他们把它移回了这里。
最合适的回答,由SO网友:Rarst 整理而成
若这是通过WP Options API完成的(相对于数据库上的直接SQL查询),那个么您可以使用挂钩来记录它。
大致如下(未测试,请确保它在正常选项“保存”下工作):
add_filter( \'pre_update_option_siteurl\', function ( $value ) {
error_log( wp_debug_backtrace_summary() );
return $value;
} );
下次发生这种情况时,你应该从回溯中更好地了解潜在的原因。
在修复之前,您还可以将其硬编码到配置中,以防止其本身损坏:
define(\'WP_HOME\',\'http://example.com\');
define(\'WP_SITEURL\',\'http://example.com\');