欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP has xxx Problem

程序员文章站 2022-04-30 19:36:13
...
【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.

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

总之,空间商业务生产的环境(问题)的要么是网站放多了要么就是大量网站在修改内容导致的。

版权声明:本文为EnweiTech原创文章,未经博主允许不得转载。