PHP has encountered an Access Violation 錯(cuò)誤的解決方法
搭建wordpress的時(shí)候發(fā)覺(jué)居然會(huì)報(bào)這種錯(cuò)誤,網(wǎng)上的解決方案都是千篇一律的復(fù)制粘貼,都是關(guān)于eaccelerator的設(shè)置問(wèn)題,我很奇怪我并沒(méi)有安裝這個(gè)擴(kuò)展???不過(guò)倒是安裝過(guò)APC擴(kuò)展,兩種擴(kuò)展都是優(yōu)化服務(wù)器做底層代碼支持,實(shí)現(xiàn)緩存共享。將APC關(guān)閉就不報(bào)錯(cuò)了。
一般是因?yàn)閑accelerator的問(wèn)題
解決方法如下:
php for windows的bug
參考:
第一種可能:
去掉 php中 eaccelerator 的擴(kuò)展
這樣做能夠解決您的問(wèn)題,不過(guò)可能會(huì)加重系統(tǒng)負(fù)擔(dān)
因?yàn)閑accelerator主要是為了節(jié)省系統(tǒng)資源的東西
具體做法是找到php.ini
如果是我?guī)湍渲玫?,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini
去掉
zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ea主要是在unix環(huán)境下開(kāi)發(fā)的,但是作者忽略到windows實(shí)際上不像u主機(jī)那樣,是沒(méi)有u主機(jī)的那種內(nèi)存共享機(jī)制的
這個(gè)bug已經(jīng)提交給他們了,希望0.9.5能夠解決
當(dāng)然,如果您的機(jī)器這個(gè)問(wèn)題不嚴(yán)重,建議還是保留,ea是一塊非常優(yōu)秀的Php緩存+加速軟件
配合zo使用,將會(huì)降低系統(tǒng)負(fù)擔(dān) 50%-80%左右,提高負(fù)載能力、速度和效率 200%左右
第二種可能
session_save_path 需要設(shè)定一個(gè)實(shí)際的物理路徑,并且該目錄需要everyone的所有權(quán)限,類似U主機(jī)的0777
第三種可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有權(quán)限,類似U主機(jī)的0777
第四種可能
您的內(nèi)存嚴(yán)重不足,查看一下,如果有問(wèn)題,請(qǐng)加內(nèi)存,最好是一次加兩條
比如加1G內(nèi)存,最好是加2條一模一樣的512M。否則沒(méi)有啟用雙通道,效果也很一般
第五種可能
ZendOptimizer和php的搭配不是很好
換個(gè)版本試試看
目前比較穩(wěn)定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2
第六種可能
這種多屬于用win2003的用戶
他們?cè)趹?yīng)用池中設(shè)定了限制
比如多長(zhǎng)時(shí)間回收,最大使用內(nèi)存多少等等
這些設(shè)置勢(shì)必造成這個(gè)經(jīng)典的php錯(cuò)誤
很多人說(shuō),是php版本的問(wèn)題,其實(shí)不然,可以從四個(gè)地方來(lái)看這個(gè)問(wèn)題
1,是否zend所需的dll文件所在目錄給的權(quán)限不夠,必須有讀取和運(yùn)行的權(quán)限
2,是否使用的2003,設(shè)置過(guò)應(yīng)用池,比如池中限制了什么什么,調(diào)整一下再試試看,是否好了,呵呵
3,php.ini有兩個(gè)地方?jīng)]有設(shè)置,而且一些程序必須用到的
A
將;upload_tmp_dir該行的注釋符,即前面的分號(hào)“;”去掉,使該行在php.ini文檔中起作用。upload_tmp_dir是用來(lái)定義上傳文件存放的臨時(shí)路徑,在這里你還可以給其定義一個(gè)絕對(duì)路徑,例如:upload_tmp_dir = d:upload 當(dāng)然,此時(shí)你的d:upload目錄必須有讀寫權(quán)限。
這里我設(shè)置為
upload_tmp_dir = "c:\windows\temp\"
B
出現(xiàn)這樣的錯(cuò)誤語(yǔ)句一般是因?yàn)槟愕膒hp.ini中關(guān)于session.save_path一項(xiàng)沒(méi)有設(shè)置好,解決的方法是將session.save_path和session.cookie_path 設(shè)置置為
session.save_path = "c:\windows\temp\"
session.cookie_path = "c:\windows\temp\"
(這個(gè)設(shè)置不知道是否正確.沒(méi)試過(guò).)
也可以在c:\目錄下建立一個(gè)temp目錄,即可(前面我們的eaccelerarot正好用到,建立過(guò)這么一個(gè)文件夾)
PHP has encountered an Access Violation解決方法總結(jié)
這個(gè)問(wèn)題不是很好處理,困惑了很多站長(zhǎng)非常時(shí)間了
主要出現(xiàn)在windows主機(jī)的服務(wù)器上。
在php官方,http://bugs.php.net/
也能夠查到兩三千頁(yè)的報(bào)告,他們官方也是束手無(wú)策,經(jīng)過(guò)了11個(gè)小版本后,還是沒(méi)有徹底解決
http://bugs.php.net/search.php?c ... ess&x=8&y=9
目前我提供一下這幾年我維護(hù)經(jīng)驗(yàn),我的一些民間解決辦法
本貼不斷更新,請(qǐng)關(guān)注?。?! 引用:
第一種可能:
去掉 php中 eaccelerator 的擴(kuò)展
這樣做能夠解決您的問(wèn)題,不過(guò)可能會(huì)加重系統(tǒng)負(fù)擔(dān)
因?yàn)閑accelerator主要是為了節(jié)省系統(tǒng)資源的東西
具體做法是找到php.ini
如果是我?guī)湍渲玫?,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini
去掉
zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ea主要是在unix環(huán)境下開(kāi)發(fā)的,但是作者忽略到windows實(shí)際上不像u主機(jī)那樣,是沒(méi)有u主機(jī)的那種內(nèi)存共享機(jī)制的
這個(gè)bug已經(jīng)提交給他們了,希望0.9.5能夠解決
當(dāng)然,如果您的機(jī)器這個(gè)問(wèn)題不嚴(yán)重,建議還是保留,ea是一塊非常優(yōu)秀的Php緩存+加速軟件
配合zo使用,將會(huì)降低系統(tǒng)負(fù)擔(dān) 50%-80%左右,提高負(fù)載能力、速度和效率 200%左右引用:
第二種可能
session_save_path 需要設(shè)定一個(gè)實(shí)際的物理路徑,并且該目錄需要everyone的所有權(quán)限,類似U主機(jī)的0777引用:
第三種可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有權(quán)限,類似U主機(jī)的0777引用:
第四種可能
您的內(nèi)存嚴(yán)重不足,查看一下,如果有問(wèn)題,請(qǐng)加內(nèi)存,最好是一次加兩條
比如加1G內(nèi)存,最好是加2條一模一樣的512M。否則沒(méi)有啟用雙通道,效果也很一般引用:
第五種可能
ZendOptimizer和php的搭配不是很好
換個(gè)版本試試看
目前比較穩(wěn)定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2引用:
第六種可能
這種多屬于用win2003的用戶
他們?cè)趹?yīng)用池中設(shè)定了限制
比如多長(zhǎng)時(shí)間回收,最大使用內(nèi)存多少等等
這些設(shè)置勢(shì)必造成這個(gè)經(jīng)典的php錯(cuò)誤
木頭經(jīng)過(guò)數(shù)以百計(jì)的測(cè)試,敢擔(dān)保問(wèn)題會(huì)出現(xiàn)在這里。引用:
第七種解決辦法
2003用戶,可以通過(guò)修改正在運(yùn)行的應(yīng)用池的, “性能”-“WEB園”“最大工作進(jìn)程數(shù)”來(lái)解決.
曾經(jīng)有個(gè)用戶,直到加為10,才徹底解決了這個(gè)問(wèn)題。
相關(guān)文章
php連接oracle數(shù)據(jù)庫(kù)的方法(測(cè)試成功)
這篇文章主要介紹了php連接oracle數(shù)據(jù)庫(kù)的方法,簡(jiǎn)單分析了php連接Oracle數(shù)據(jù)庫(kù)的常見(jiàn)方法與具體操作技巧,并對(duì)可能出現(xiàn)的問(wèn)題進(jìn)行了總結(jié)分析,需要的朋友可以參考下2016-05-05
10個(gè)簡(jiǎn)化PHP開(kāi)發(fā)的工具
這篇文章主要介紹了10個(gè)簡(jiǎn)化PHP開(kāi)發(fā)的工具,都是今年比較熱門和使用的,需要的朋友可以參考下2014-12-12
php 重寫分頁(yè)器 CLinkPager的實(shí)例
這篇文章主要介紹了php 重寫分頁(yè)器 CLinkPager的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
PHP 獲取某年第幾周的開(kāi)始日期和結(jié)束日期的實(shí)例
下面小編就為大家分享一篇PHP 獲取某年第幾周的開(kāi)始日期和結(jié)束日期的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
2020最新版 PhpStudy V8.1版本下載安裝使用詳解
這篇文章主要介紹了2020最新版 PhpStudy V8.1版本下載安裝使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

