1、今天調(diào)試php代碼,出現(xiàn)了下面這樣的提示:
Unable to load dynamic library 'D:MyServerApache2.2.9PHP5.2.6extphp_pdo_mysql.dll' - 找不到指定的模塊。
出現(xiàn)這樣提示的原因我總結(jié)了一下可能有這么幾種:
(1)沒有在php.ini中將extension=php_pdo_mysql.dll前面的分號去掉
在php.ini中分號表示注釋,因?yàn)樵谂渲脮r被注釋掉了,所謂無法加載成功而出錯。
(2)在php.ini中將extension=php_pdo_mysql.dll放在了extension=php_pdo.dll的前面加載
可能是因?yàn)樵诩虞dphp_pdo_mysql.dll的時候需要php_pdo.dll的支持所以不能加載成功
(3)php_pdo.dll和php_pdo_mysql.dll兩個動態(tài)鏈接庫不匹配
兩個dll文件可能源于不同的mysql版本造成相互之間不匹配
我出現(xiàn)的就是第三個原因,在我的php.ini中沒有
;extension=php_pdo.dll
;extension=php_pdo_mysql.dll
這樣的語句,于是開始我到網(wǎng)上分別找了兩個這樣的dll文件放在php.ini的extension_dir這個參數(shù)指定的目錄中,
但是由于他們不匹配,還是會出現(xiàn)php_pdo_mysql.dll無法加載的問題
最后我在自己的下載的zend framework里找到了也有這樣的兩個鏈接庫
最終的配置步驟是:
(1)在php.ini中將
;extension=php_pdo.dll
;extension=php_pdo_mysql.dll
前面的分號去掉(注意兩者的順序不能換),并保存
(2)將找到的找到的兩個dll文件拷貝到extension_dir指定的目錄中
(3)重啟apache服務(wù)
代碼最終不再出現(xiàn)剛才的錯誤
2、今天遇到的另一個問題就是域名重定向問題,在zend framework中,如果域名為mysite.com/test/index,他將會執(zhí)行test控制器中的index方法,
然后顯示出index中條用的模板顯示出來。今天遇到的這個問題是,當(dāng)域名寫成上面這樣的樣式時,瀏覽器提示:
Not Found
The requested URL /test/index was not found on this server.
這是因?yàn)闆]有設(shè)置好域名重定向的原因。設(shè)置域名重定向主要包含下面這幾個步驟:
(1)將apache的配置文件httpd.conf中的LoadModule rewrite_module modules/mod_rewrite.so前面的分號去掉
(2)將httpd.conf中的AllowOverride None改為AllowOverride All
(3)重啟apache服務(wù)器
(4)在項(xiàng)目的入口文件(一般為index.php)所存放的目錄中新建.htaccess,并添加下面的代碼:
(關(guān)于.htaccess的功能,請參考百度百科)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
這樣就完工了~~~~~~
3、總結(jié)
其實(shí)在整個調(diào)試過程中需要注意的一點(diǎn)就是要知道除了錯誤之后怎么去找這個原因
如果apache的配置方面出錯,致使apache不能啟動或者出現(xiàn)其他情況,
可以到apache目錄下對應(yīng)的error.log中查看到底是什么原因致使錯誤的發(fā)生,
在httpd.conf中添加下面一行代碼:
ErrorLog "logs/error.log"
就可以到該文件中查看相關(guān)apache的出錯信息
如果是php運(yùn)行過程中發(fā)生的錯誤,可以通過php.ini來配置一個phperror.log來查看原因
這個可以在php.ini中添加這樣一句代碼:
error_log = D:php_err.log
這樣在該文件中就可以看到相關(guān)php的錯誤信息