1、今天调试php代码,出现了下面这样的提示:

Unable to load dynamic library 'D:\MyServer\Apache2.2.9\PHP5.2.6\ext\php_pdo_mysql.dll' - 找不到指定的模块。

出现这样提示的原因我总结了一下可能有这么几种:

(1)没有在php.ini中将extension=php_pdo_mysql.dll前面的分号去掉

在php.ini中分号表示注释,因为在配置时被注释掉了,所谓无法加载成功而出错。

(2)在php.ini中将extension=php_pdo_mysql.dll放在了extension=php_pdo.dll的前面加载

可能是因为在加载php_pdo_mysql.dll的时候需要php_pdo.dll的支持所以不能加载成功

(3)php_pdo.dll和php_pdo_mysql.dll两个动态链接库不匹配

两个dll文件可能源于不同的mysql版本造成相互之间不匹配

 


我出现的就是第三个原因,在我的php.ini中没有

;extension=php_pdo.dll
;extension=php_pdo_mysql.dll

这样的语句,于是开始我到网上分别找了两个这样的dll文件放在php.ini的extension_dir这个参数指定的目录中,

但是由于他们不匹配,还是会出现php_pdo_mysql.dll无法加载的问题

 


最后我在自己的下载的zend framework里找到了也有这样的两个链接库

 


最终的配置步骤是:

(1)在php.ini中将

;extension=php_pdo.dll
;extension=php_pdo_mysql.dll

前面的分号去掉(注意两者的顺序不能换),并保存

(2)将找到的找到的两个dll文件拷贝到extension_dir指定的目录中

(3)重启apache服务

代码最终不再出现刚才的错误

 


2、今天遇到的另一个问题就是域名重定向问题,在zend framework中,如果域名为mysite.com/test/index,他将会执行test控制器中的index方法,

然后显示出index中条用的模板显示出来。今天遇到的这个问题是,当域名写成上面这样的样式时,浏览器提示:


      Not Found

The requested URL /test/index was not found on this server.

这是因为没有设置好域名重定向的原因。

 

设置域名重定向主要包含下面这几个步骤:

(1)将apache的配置文件httpd.conf中的LoadModule rewrite_module modules/mod_rewrite.so前面的分号去掉

(2)将httpd.conf中的AllowOverride None改为AllowOverride All

(3)重启apache服务器

(4)在项目的入口文件(一般为index.php)所存放的目录中新建.htaccess,并添加下面的代码:

(关于.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、总结

其实在整个调试过程中需要注意的一点就是要知道除了错误之后怎么去找这个原因

如果apache的配置方面出错,致使apache不能启动或者出现其他情况,

可以到apache目录下对应的error.log中查看到底是什么原因致使错误的发生,

在httpd.conf中添加下面一行代码:

ErrorLog "logs/error.log"

就可以到该文件中查看相关apache的出错信息

如果是php运行过程中发生的错误,可以通过php.ini来配置一个phperror.log来查看原因

这个可以在php.ini中添加这样一句代码:

error_log = D:\php_err.log

这样在该文件中就可以看到相关php的错误信息

 

本文转载至网络