ADJ網路實驗室
打印

[問題] php error!help me~~~

php error!help me~~~

Dear All,

My Server出現了一點問題...

OS:Win2k server
php:ver5.0
MySQL:ver4.1.7

最近在瀏覽含MySQL資料庫網頁時
不定時的在連入時會出現以下錯誤訊息
"HP has encountered an Access Violation at 77FCAFF8"

懇請解決辦法...Thanks All!!





TOP


更多好康分享中~~
這個問題老實說我沒遇過...因為我的環境都在Linux Server上...不過用Google找了一下...
發現這一篇寫的還滿多的...提供給你參考!!!
複製內容到剪貼板
代碼:
這個問題不是很好處理,困惑了很多站長非常時間了

主要出現在windows主機的服務器上。

在php官方,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:\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環境下開發的,但是作者忽略到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的錯誤

php經常報錯,顯示PHP has encountered an Access Violation at XXXXXX  
很多人說,是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:\temp  (因為前面建立了這個文件夾,我圖省事,呵呵)  


B  
出現這樣的錯誤語句一般是因為你的php.ini中關於session.save_path一項沒有設置好,解決的方法是將session.save_path和session.cookie_path 設置置為  

  session_save_path = c:\temp  

  session.cookie_path = c:\temp  

  然後在c:\目錄下建立一個temp目錄,即可(前面我們的eaccelerarot正好用到,建立過這麼一個文件夾)
From: http://forum.f2blog.com/thread-2454-1-6.html


TOP

感謝管理員的回答...
不過其實我的server一直沒有出現過這樣的問題(運行三年)
直到最近...某個底下的使用者裝了一套怪怪的blog
之後就產生問題...昨天底下的user該blog資料庫移除
似乎狀況就改善了...持續觀察中..並且可能需要想辦法將該blog剖析
Thank you!!!


TOP

ARTERY.cn