您的位置:首页 > 编程语言 > PHP开发

PHP has xxx Problem

2015-08-31 16:50 525 查看
【PHP has encountered a Statck overflow】
描述:PHP遇到堆栈溢出

解决办法:

1、请检查您的 MySQL 帐号是否有相应的权限或者网站更目录是否有相应的匿名来宾权限(iis_user)。

2、检查一下应用下的 config 配置文件中的连接数据库的帐号是否正确。

3、检查一下数据库是否满了,如果数据库满了没有空间后也会出现这种情况。


PHP has encountered a Stack overflow 

空间内存不足或者服务器的php版本问题

[案例]

Q:客户在使用phpcms一段时间后,更新栏目缓存 老是提示:PHP has encountered a Stack overflow

S:客户在把一些栏目删除或者新增栏目时没更新栏目缓存.还有就是用户在修改栏目时,不小心将上级栏目修改成本栏目ID,这样也会出现这个提示

导致v9_category表里有原来的垃圾信息,多余的表。

通过phpmyadmin找到多余的表,删除后恢复正常。

【PHP has encountered an Access Violation at 016E73DD】

最好先查看系统日志文件,我们从日志中就可以发现很多问题。

我们就是因为数据库表出错,修复一下就可以了,重启下iis或重启下服务器试试。

出现的原因:网站内存占用高与服务器内存资源少,IIS应用池资源不能即时回收导致

(例如phpwind网站主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的——典型的php版本和系统兼容问题) 

解决方法: 

1、服务器设置: 

         1)设置IIS应用池回收时间小于60分钟(默认是1740分钟,很多服务器都没改过) 

         2)应用池可支配大小不低于500M 

         3)CPU使用限制不低于50%(部分服务器为了提供更多虚拟机给站长使用,限制了CPU使用率) 

         4)可以安装php的eAccelerator模块,网站可提速5-10倍,还可减少pw9的文件加载资源消耗 

2、网站优化(IIS 虚拟机用户): 

        1)后台关闭debug模式 

        2)把模块属性里的“数据更新周期”设为480分钟,并设置“数据更新区间”设为“开始于1点0分 结束于10点0分” 

意思就是数据自动更新时间在访问空闲时段,避免高峰数据更新占用大量内存和CPU资源。如果还出现,直接把周期设为0,手动更新。模块包括默认的喜欢页和话题页模块以及拖曳、导入的模块 

        3)后台全局里设置防刷新时间间隔3秒 

        4)减少二级域名和伪静态的使用,这个很占用资源 

额外的话:虚拟主机用户使用前请先确认php有没有安装zlib模块(用于应用安装)和socket模块(curl模块)用于应用中心以及windid通信。另外高版本的PHP和Mysql存在兼容性的问题。

其他VPS/云主机/独立服务器设置原因详解参考资料http://www.jb51.net/article/10072.htm.

(仅供参考,具体适各自网站和空间情况)

总之,空间商业务生产的环境(问题)的要么是网站放多了要么就是大量网站在修改内容导致的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: