PHP has encountered an Access Violation

來源:互聯網
上載者:User

php for windows的bug
參考:

第一種可能:

去掉 php中 eaccelerator 的擴充
這樣做能夠解決您的問題,不過可能會加重系統負擔
因為eaccelerator主要是為了節省系統資源的東西

具體做法是找到php.ini
如果是我幫您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

去掉

zend_extension_ts="C:phpextensionseaccelerator_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環境下開發的,但是作者忽略到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的搭配不是很好
換個版本試試看
目前比較穩定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2

 


第六種可能

這種多屬於用win2003的使用者
他們在應用池中設定了限制
比如多長時間回收,最大使用記憶體多少等等
這些設定勢必造成這個經典的php錯誤

很多人說,是php版本的問題,其實不然,可以從四個地方來看這個問題
1,是否zend所需的dll檔案所在目錄給的許可權不夠,必須有讀取和啟動並執行許可權
2,是否使用的2003,設定過應用池,比如池中限制了什麼什麼,調整一下再試試看,是否好了,呵呵
3,php.ini有兩個地方沒有設定,而且一些程式必須用到的

A
將;upload_tmp_dir該行的注釋符,即前面的分號“;”去掉,使該行在php.ini文檔中起作用。upload_tmp_dir是用來定義上傳檔案存放的臨時路徑,在這裡你還可以給其定義一個絕對路徑,例如:upload_tmp_dir = d:upload  當然,此時你的d:upload目錄必須有讀寫權限。 
這裡我設定為 
upload_tmp_dir = "c:windowstemp"

B
出現這樣的錯誤語句一般是因為你的php.ini中關於session.save_path一項沒有設定好,解決的方法是將session.save_path和session.cookie_path 設定置為 
session.save_path = "c:windowstemp" 
session.cookie_path = "c:windowstemp" 
(這個設定不知道是否正確.沒試過.)
   也可以在c:目錄下建立一個temp目錄,即可(前面我們的eaccelerarot正好用到,建立過這麼一個檔案夾)

 


PHP has encountered an Access Violation解決方案總結
這個問題不是很好處理,困惑了很多站長非常時間了
主要出現在windows主機的伺服器上。
在php官方,.net/">http://bugs.php.net/
也能夠查到兩三千頁的報告,他們官方也是束手無策,經過了11個小版本後,還是沒有徹底解決
http://bugs.php.net/search.php?c ... ess&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:phpextensionseaccelerator_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環境下開發的,但是作者忽略到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的搭配不是很好
換個版本試試看
目前比較穩定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2引用:
第六種可能

這種多屬於用win2003的使用者
他們在應用池中設定了限制
比如多長時間回收,最大使用記憶體多少等等
這些設定勢必造成這個經典的php錯誤
木頭經過數以百計的測試,敢擔保問題會出現在這裡。引用:
第七種解決辦法
2003使用者,可以通過修改正在啟動並執行應用池的, “效能”-“WEB園”“最大背景工作處理序數”來解決.
曾經有個使用者,直到加為10,才徹底解決了這個問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.