PHP has encountered an Access Violation at XXXX的解決辦法
出現(xiàn)的原因:內(nèi)存占用高與服務(wù)器內(nèi)存資源少,IIS應(yīng)用池資源不能即時(shí)回收導(dǎo)致
解決方法:
1、服務(wù)器設(shè)置:
1)設(shè)置IIS應(yīng)用池回收時(shí)間小于60分鐘(默認(rèn)是1740分鐘,很多服務(wù)器都沒(méi)改過(guò))
2)應(yīng)用池可支配大小不低于500M
3)CPU使用限制不低于50%(部分服務(wù)器為了提供更多虛擬機(jī)給站長(zhǎng)使用,限制了CPU使用率)
4)可以安裝php的eAccelerator模塊,網(wǎng)站可提速5-10倍,還可減少文件加載資源消耗
2、網(wǎng)站優(yōu)化(IIS 虛擬機(jī)用戶):
1)后臺(tái)關(guān)閉debug模式
2)把模塊屬性里的“數(shù)據(jù)更新周期”設(shè)為480分鐘,并設(shè)置“數(shù)據(jù)更新區(qū)間”設(shè)為“開(kāi)始于1點(diǎn)0分 結(jié)束于10點(diǎn)0分”
意思就是數(shù)據(jù)自動(dòng)更新時(shí)間在訪問(wèn)空閑時(shí)段,避免高峰數(shù)據(jù)更新占用大量?jī)?nèi)存和CPU資源。如果還出現(xiàn),直接?周期設(shè)為0,手動(dòng)更新。模塊包括默認(rèn)的喜歡頁(yè)和話題頁(yè)模塊以及拖曳、導(dǎo)入的模塊
3)后臺(tái)全局里設(shè)置防刷新時(shí)間間隔3秒
4)減少二級(jí)域名和偽靜態(tài)的使用,這個(gè)很占用資源
額外的話:虛擬主機(jī)用戶使用前請(qǐng)先確認(rèn)php有沒(méi)有安裝zlib模塊(用于應(yīng)用安裝)和socket模塊(curl模塊)用于應(yīng)用中心以及windid通信
整體思路如下:
1、更新到5.2后php版本
2、是否zend所需的dll文件所在目錄給的權(quán)限不夠,必須有讀取和運(yùn)行的權(quán)限
3、如果使用的是windows系統(tǒng),是否設(shè)置過(guò)應(yīng)用池,比如池中限制了什么
4、高版本的PHP和Mysql存在兼容性的問(wèn)題。c:/windows/system32下的libmysql.dll 使用php下的,不要使用mysql下的,因?yàn)閮蓚€(gè)程序下都有
5、php.ini有兩個(gè)地方?jīng)]有設(shè)置
1)
將;upload_tmp_dir該行的注釋符,即前面的分號(hào)“;”去掉,使該行在php.ini文檔中起作用。
upload_tmp_dir是用來(lái)定義上傳文件存放的臨時(shí)路徑,在這里你還可以給其定義一個(gè)絕對(duì)路徑
比如:upload_tmp_dir = d: mp
(d: mp目錄必須有讀寫權(quán)限)
2)
php.ini中關(guān)于session.save_path一項(xiàng)沒(méi)有設(shè)置好,解決的方法是將
session.save_path和session.cookie_path 定義一個(gè)絕對(duì)路徑
比如:
session_save_path = d: emp
session.cookie_path = d: emp
(d: mp目錄必須有讀寫權(quán)限)