程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP has encountered an Access Violation問題的解決方法總結

PHP has encountered an Access Violation問題的解決方法總結

編輯:關於PHP編程

這個問題不是很好處理,困惑了很多站長非常時間了
主要出現在windows主機的服務器上。
在php(做為現在的主流開發語言)官方,http://bugs.php(做為現在的主流開發語言).net/
也能夠查到兩三千頁的報告,他們官方也是束手無策,經過了11個小版本後,還是沒有徹底解決
http://bugs.php(做為現在的主流開發語言).net/search.php(做為現在的主流開發語言)?cmd=display&search_for=php(做為現在的主流開發語言)+has+encountered+an+access(小型網站之最愛)&x=8&y=9

目前我提供一下這幾年我維護經驗,我的一些民間解決辦法

第一種可能:

去掉 php(做為現在的主流開發語言)中 eaccelerator 的擴展
這樣做能夠解決您的問題,不過可能會加重系統負擔
因為eaccelerator主要是為了節省系統資源的東西

具體做法是找到php(做為現在的主流開發語言).ini
如果是我幫您配置的,一般在c:/php(做為現在的主流開發語言)/php(做為現在的主流開發語言).ini或者 c:/winnt/php(做為現在的主流開發語言).ini 或者c:/windows/php(做為現在的主流開發語言).ini

去掉

zend_extension_ts="C:php(做為現在的主流開發語言)extensionseaccelerator_win_xxx.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c: emp"
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環境下開發的,但是作者忽略到windows實際上不像u主機那樣,是沒有u主機的那種內存共享機制的
這個bug已經提交給他們了,希望0.9.5能夠解決

當然,如果您的機器這個問題不嚴重,建議還是保留,ea是一塊非常優秀的php(做為現在的主流開發語言)緩存+加速軟件
配合zo使用,將會降低系統負擔 50%-80%左右,提高負載能力、速度和效率 200%左右


第二種可能

session_save_path 需要設定一個實際的物理路徑,並且該目錄需要everyone的所有權限,類似U主機的0777


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


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


第五種可能
ZendOptimizer和php(做為現在的主流開發語言)的搭配不是很好
換個版本試試看
目前比較穩定的搭配是
php(做為現在的主流開發語言)4.3.11+zo 2.5.10a
或者php(做為現在的主流開發語言)4.4.1+zo 3.0 beta2


第六種可能

這種多屬於用win2003的用戶
他們在應用池中設定了限制
比如多長時間回收,最大使用內存多少等等
這些設置勢必造成這個經典的php(做為現在的主流開發語言)錯誤
木頭經過數以百計的測試,敢擔保問題會出現在這裡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved