我有一个网站在pyrocms 2.0.1和它的工作良好,除了用户模块。当我从admin点击Manage时,它给了我500个内部服务器错误,并且usre模块在本地服务器上工作得太慢了。db.here中大约有5000名用户是配置文件http://www.mypartyaid.com/info.php。
这里显示在错误日志中的条目
错误-2012-11-2904:07:08->页面丢失: m/style/images/ui-bg_inset-soft_25_000000_1x100.png错误-2012-11-2904:07:08->类"Plugin_Url“中不存在插件方法”Plugin_Url“。错误-2012-11-2904:07:59->页面丢失: robots.txt错误-2012-11-2904:07:59->类"Plugin_Url“中不存在插件方法”Plugin_Url“。错误-2012-11-2904:08:15->插件方法"baseuri“在"Plugin_Url”类中不存在。错误-2012-11-2904:08:21->页面丢失: m/style/images/ui-bg_inset-soft_25_000000_1x100.png错误-2012-11-2904:08:21->类"Plugin_Url“中不存在插件方法"baseuri”。错误-2012-11-2904:09:51->页面丢失: m/style/images/ui-bg_inset-soft_25_000000_1x100.png错误-2012-11-2904:09:51->类"Plugin_Url“中不存在插件方法"baseuri”。错误-2012-11-2904:10:35->插件方法"baseuri“在"Plugin_Url”类中不存在。错误-2012-11-2904:10:35->插件方法"baseuri“在"Plugin_Url”类中不存在。错误-2012-11-2904:10:35->插件方法"baseuri“在"Plugin_Url”类中不存在。错误-2012-11-2904:10:38->插件方法"baseuri“在"Plugin_Url”类中不存在。错误-2012-11-2904:10:38->插件方法"baseuri“在"Plugin_Url”类中不存在。错误- 2012-11-29 04:10:39 ->严重程度:通知->未定义的指数:城市

服务器错误日志
清华11月29日00: 29 :33 2012客户端141.101.99.77 mod_fcgid: stderr: PHP警告: date():依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种,并且仍然收到此警告,则很可能拼写错了时区标识符。在第134行的/var/www/vhosts/mypartyaid.com/httpdocs/m/post.php中,我们选择了“America/New York”作为“EST/-5.0/no DST”,并引用:http://www.mypartyaid.com/m/post.php?pid=80。
清华11月29日00:32:01 2012客户端108.162.222.7 mod_fcgid: 45秒内读取数据超时,referer:http://www.mypartyaid.com/admin
清华11月29日00:32:01 2012客户端108.162.222.7过早结束脚本头: index.php,referer:http://www.mypartyaid.com/admin
清华11月29日00:35:42 2012客户端108.162.222.7 mod_fcgid: 45秒内读取数据超时,referer:http://www.mypartyaid.com/admin
清华11月29日00:35:42 2012客户端108.162.222.7过早结束脚本头: index.php,referer:http://www.mypartyaid.com/admin
发布于 2013-02-12 04:43:06
这个问题最终不是服务器错误,而是默认用户模型的低效率。该模块将用户表分成两个不同的表( default_profiles和default_users )。然后使用user_id字段将这两个表连接起来。
问题是,CMS中生成的许多SQL语句在default_profiles上运行复杂的join语句,导致查询时间随着用户表的大小线性增加。
我在字段user_id上添加了一个索引,站点主页的查询时间从8秒缩短到.001秒以下。因此,向此字段添加索引将允许您的用户表进行适当的缩放。
发布于 2012-11-28 15:34:22
一个500几乎总是表示一个致命的错误,但现场显然不想吐出调试数据,这可能导致您的用户发现信息,他们可以使用黑客网站。
检查您的PHP日志,答案应该非常明显。如果你不能从这个问题中找出答案,那么编辑你的问题,包含日志中的错误信息,并对这个问题进行评论,这样我就可以更新我的答案了。
https://stackoverflow.com/questions/13599206
复制相似问题