配置環境如下:
Win2003SP2+IIS6+php5.26+mysql5.0.51a+zend3.3a+PhpMyAdmin2.11.7.1 PHP執行方式:isapi。Mysql為手動安裝。
關於“內存位置訪問無效”的 錯誤解決辦法與步驟:(一些部份無效的調試步驟略過..)
一、將IIS的錯誤顯示打開,未發現錯誤原因!
二、檢查IIS擴展,ISAPI、php.ini與Mysql配置以及相應的安裝目錄ACLs權限,均無誤。
三、回收IIS進程,錯誤仍然出現”內存位置訪問無效”….
四、將php.ini中 display_startup_errors = On 打開,問題所在終於發現了… (注:如果將php.ini的display_startup_errors打開,如果php有錯誤出理,就會提示,而且在事件查看器中有記錄。如果設置為display_startup_errors = Off,則不會有任何提示)
五、錯誤分析
復制代碼 代碼如下:Warning
Cannot load module ‘SQLite' because required module ‘pdo' is no loaded
上面這條錯誤信息終於被發現了。大概意思就是因為php.ini配置中開啟了SQLite桌面數據庫的支持,但未開啟相關的pdo模式,pdo模塊加載失敗…..
六、解決辦法也很簡單了,因為加載php_sqlite.dll時未加載到php_pdo.dll文件,所以運行phpinfo()函數時提示內存 位置訪問無效。找到php.ini配置文件,然後去掉”;extension=php_pdo.dll”前面的分號, extension=php_sqlite.dll
然後再回收一下IIS應用程序池進程,問題徹底解決。
重啟IIS就可以了。
windows2003為了保持系統的穩定性,在系統自己占用的內存地址是不允許訪問的(防止藍屏)。如果有程序試圖訪問他會阻止,出現以上提示,一般情況下由於軟件的不正確安裝造成。