五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 全新解決:PHP has encountered an Access Violation

全新解決:PHP has encountered an Access Violation

文章來源:365jz.com     點擊數(shù):892    更新時間:2011-09-26 12:56   參與評論
大概沒有人在玩PHP的過程中會不曾遇到“PHP has encountered an Access Violation…”錯誤吧?尤其是像這種完全沒有接觸過Microsoft以外平臺的人來說,第一次著實被嚇得不輕,在花了三個小時也沒解決后,差點放棄了。


 

習慣了Windows平臺的全GUI操作模式,對于完全需要手工配置的PHP + MYSQL ,實在是不習慣。好有很多東西的原理是相同的,熟悉起來也不是太難的事情。


 

在嘗試過PHP和MYSQL的自動安裝和手動安裝后,在經(jīng)過不同版本的組合試驗后,經(jīng)典的“PHP has encountered an Access Violation…”終于不請自來,PHPMYADMIN不可用,DZ也不可用。上網(wǎng)一搜,同病相憐的人還真不少,而且大家都紛紛轉(zhuǎn)載某位大俠的文章,我也摘抄一下吧,只是抱歉無法知道原作者是誰。


 

這個問題不是很好處理,困惑了很多站長非常時間了
主要出現(xiàn)在windows主機的服務器上。
在php官方,
http://bugs.php.net/
也能夠查到兩三千頁的報告,他們官方也是束手無策,經(jīng)過了11個小版本后,還是沒有徹底解決
http://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+Access&x=8&y=9
目前我提供一下這幾年我維護經(jīng)驗,我的一些民間解決辦法
第一種可能:
去掉 php中 eaccelerator 的擴展
這樣做能夠解決您的問題,不過可能會加重系統(tǒng)負擔
因為eaccelerator主要是為了節(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)境下開發(fā)的,但是作者忽略到windows實際上不像u主機那樣,是沒有u主機的那種內(nèi)存共享機制的
這個bug已經(jīng)提交給他們了,希望0.9.5能夠解決
當然,如果您的機器這個問題不嚴重,建議還是保留,ea是一塊非常優(yōu)秀的Php緩存+加速軟件
配合zo使用,將會降低系統(tǒng)負擔 50%-80%左右,提高負載能力、速度和效率 200%左右
 

第二種可能
session_save_path 需要設(shè)定一個實際的物理路徑,并且該目錄需要everyone的所有權(quán)限,類似U主機的0777
 

第三種可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有權(quán)限,類似U主機的0777
 

第四種可能
您的內(nèi)存嚴重不足,查看一下,如果有問題,請加內(nèi)存,最好是一次加兩條
比如加1G內(nèi)存,最好是加2條一模一樣的512M。否則沒有啟用雙通道,效果也很一般
 

第五種可能
ZendOptimizer和php的搭配不是很好
換個版本試試看
目前比較穩(wěn)定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2
 

第六種可能
這種多屬于用win2003的用戶
他們在應用池中設(shè)定了限制
比如多長時間回收,最大使用內(nèi)存多少等等
這些設(shè)置勢必造成這個經(jīng)典的php錯誤
木頭經(jīng)過數(shù)以百計的測試,敢擔保問題會出現(xiàn)在這里。
這篇文章的作者應該具有相當豐富的經(jīng)驗,可惜他的這些經(jīng)驗目前對于我都沒有幫助,也就是說以上的六種可能在我這里都不存在。
 
伴著這個問題上床睡覺,但難以入眠,反復對比這幾天沒有遇到此問題的各種配置,思索著可能的第七種原因。
 
出現(xiàn)這個問題,在我重裝Windows Server 2003,全新下載php+mysql+zend并安裝的環(huán)境下。服務器系統(tǒng)本身是肯定沒有問題的,在出錯的情況下,完全卸載php+mysql+zend,并換上xampp卻是正常的,說明DZ沒問題,并再次說明系統(tǒng)沒有問題。
 
出錯的主要是phpmyadmin和DZ,而這兩者都是需要和mysql連接的,是否mysql有問題?
 
第二天早上顧不得吃早飯就查看并保存了xampp下面的phpinfo,然后重新裝上昨天出問題的組合,查看phpinfo,一對比,最主要的區(qū)別就在于mysql的版本。xampp帶的是5.022,我自己安裝的是5.124。
 
卸載mysql5.124,重新下載一個mysql5.022裝上,還是不行。再次檢查phpinfo,發(fā)現(xiàn)mysql模塊的版本仍然是5.124。
于是停止運行mysql和IIS,把mysql安裝目錄下面的libmysql.dll分別覆蓋到php安裝目錄和%win%\system32下面,再重啟MYSQL和IIS,問題解決!
 
感嘆1:開源軟件是好,但是太缺乏標準和統(tǒng)一性,過多的版本讓人會難以適從。偶這還是WIMP,如果是真正的LAMP,版本之間的組合可能會更多,怎么選呢?
 
感嘆2:軟件并非越新越好,合適的就是最好的。

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (892人查看0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術(shù)支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號