500 pyrocms用户模块中的内部服务器错误

时间:2012-11-28 06:36:58

标签: codeigniter webserver php pyrocms

我在pyrocms 2.0.1中有一个站点,并且除了用户模块之外它还运行良好。当我点击管理用户从管理员它给我500内部服务器错误也usre模块在本地服务器工作这么慢。我们在db中有大约5000个用户。这是配置文件http://www.mypartyaid.com/info.php

此处显示错误日志中的条目

ERROR - 2012-11-29 04:07:08 - >页面缺失:m / style / images / ui-bg_inset-soft_25_000000_1x100.png ERROR - 2012-11-29 04:07:08 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:07:59 - >页面缺失:robots.txt 错误 - 2012-11-29 04:07:59 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:08:15 - >类“Plugin_Url”上不存在插件方法“baseuri”。 ERROR - 2012-11-29 04:08:21 - >页面缺失:m / style / images / ui-bg_inset-soft_25_000000_1x100.png ERROR - 2012-11-29 04:08:21 - >类“Plugin_Url”上不存在插件方法“baseuri”。 ERROR - 2012-11-29 04:09:51 - >页面缺失:m / style / images / ui-bg_inset-soft_25_000000_1x100.png ERROR - 2012-11-29 04:09:51 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:35 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:35 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:35 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:38 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:38 - >类“Plugin_Url”上不存在插件方法“baseuri”。 错误 - 2012-11-29 04:10:39 - >严重性:通知 - >未定义的索引:城市

enter image description here

服务器错误日志

[2012年11月29日星期四00:29:33] [警告] [客户端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中为'EST / -5.0 / no DST'选择'America / New_York',参考文献:http://www.mypartyaid.com/m/post.php?pid=80

[Thu Nov 29 00:32:01 2012] [warn] [client 108.162.222.7] mod_fcgid:在45秒内读取数据超时,参考:http://www.mypartyaid.com/admin

[Thu Nov 29 00:32:01 2012] [错误] [client 108.162.222.7]脚本标题的提前结束:index.php,referer:http://www.mypartyaid.com/admin

[2012年11月29日星期四00:35:42] [警告] [客户端108.162.222.7] mod_fcgid:在45秒内读取数据超时,referer:http://www.mypartyaid.com/admin

[Thu Nov 29 00:35:42 2012] [错误] [client 108.162.222.7]脚本标题的提前结束:index.php,referer:http://www.mypartyaid.com/admin

2 个答案:

答案 0 :(得分:1)

500几乎总是表示致命错误,但实际站点显然不想吐出调试数据,这可能导致用户找到他们可以用来破解网站的信息。

检查您的PHP日志,答案应该非常明显。如果您无法解决问题,请编辑您的问题以包含日志中的错误消息并对此问题发表评论,以便我可以更新我的答案。

答案 1 :(得分:1)

问题最终不是服务器错误,默认用户模型效率低下。该模块将用户表拆分为两个不同的表default_profilesdefault_users。然后使用user_id字段连接这两个表。

问题是CMS中的许多生成的SQL语句在default_profiles上运行复杂的连接语句,导致查询时间随用户表的大小线性增加。

我在字段user_id上放了一个索引,网站主页的查询时间从8秒到0.001秒不到。因此,在此字段中添加索引将允许您的用户表正确缩放。