找出WordPress中使用PHP会话的原因

时间:2018-04-11 作者:mayabelle

有没有办法找出什么在使用PHP会话或派生PHP进程?

我的Wordpress网站流量很大(每月点击350万次)。我们最近发现,长期以来权限设置不正确,这意味着没有任何东西可以访问PHP会话。不幸的是,在我们修复了权限之后,我们发现大量PHP进程正在快速生成,服务器完全没有响应。它甚至不会从健康检查回来。它是AWS中的一个专用Nginx服务器,没有其他任何东西在其上运行。我们看到的是,数十个PHP进程开始并不断增长。如果我们再次“破坏”PHP会话权限,问题就不会发生,所以我们已经确定Wordpress中的某些内容(可能是插件?)过度使用PHP会话。

我们无法在dev中复制,因为它只发生在生产站点的高负载下,数百个用户同时访问该站点。由于Wordpress要求一组数据库条目与它运行的域相同,我们的开发环境只是一个不同的IP,我们可以通过更改主机文件来访问它。我们无法公开访问使用服务来模拟负载。

但是,由于用户基数很高,关闭所有插件并不切实可行,因为如果没有插件,网站将完全崩溃。我们不能依赖于回溯最近的更改,因为权限已被破坏数月,所以甚至不知道要回滚什么。

有没有办法找到在WordPress中使用PHP会话的方法?或者,什么是派生PHP进程?如果我们能确定这一点,我想我们就能找到根本原因。

1 个回复
SO网友:Oleg Butuzov

据我所知,WP不使用PHP会话,只使用本机解决方案(将登录用户的会话数据存储在DB中)。也许其他一些附加功能(插件/插件/主题)也在使用它?

您可以做的是检查会话文件中的内容。搜索在代码库中的会话中找到的密钥。定位问题并解决它。

另一种方法是将会话切换到内存(安装memcached服务器并重新路由会话to be served by memcached)

每月350万用户平均为每秒5-6个用户。对于安装了WP的nginx/php/mysql来说,情况就不太一样了(只有繁重的SQL查询可能是您的另一个瓶颈,但现在听起来不像这样)。

结束