梦想的生活,就是去新西兰放羊

解决wamp组合下加载php的extension

   这个问题折磨了我半天,也找了很多种方法尝试都未果。由于之前都用集成组合软件做开发,Win下单独配置时其他都很顺利,唯独很多php扩展完全无法加载。  

  我通过apache的httpd.conf里添加 LoadModule php5_module "C:/webware/php/php5apache2_2.dll" 来运行php。

  我输出 get_loaded_extensions(),  无论重启多少次都是一样。通过 phpinfo() 可以看到,  Loaded Configuration File 为 no value,我的windows目录下是没有php.ini的。 其实这只不过是由于安装完第一次运行php时,php目录下并没有php.ini,php使用了默认值,之后也是,所以php/php.ini未起作用。

 

  于是我httpd.conf添加上

    PhpIniDir "C:/webware/php"

  这句导致apache不能启动,但是php的配置文件位置却变成了php目录下的php.ini了, 试了多次来观察几者之间的关系:


  LoadModule php5_module "C:/webware/php/php5apache2_2.dll"

  LoadFile "C:/webware/php/libeay32.dll"

  LoadFile "C:/webware/php/ssleay32.dll"
  LoadFile "C:/webware/php/libmysql.dll"
  PhpIniDir "C:/webware/php"  

  此时 php目录下的 php.ini 生效, 但是可能因为同时加载了 php_mysql.dll , php_mysqli.dll, php_pdo_mysql.dll 而无法启动apache。 遇到这种情况可以先注释这三个extension运行一次apache(php目录下的php.ini将被加载),# PhpIniDir注释掉, 然后重新配置php这三项extension。

  可以依次排除来寻找故障,最好先不要include多余的文件。 尝试把apache的这三个dll复制到 windows/system32 和 php 目录下。

 

  配置不当时,启动apache可能一直无响应,任务管理器结束apache, 再次启动便直接失败。 其实这只不过是 httpd.exe 仍然卡住了,不必重启, 命令行强制结束:

  taskkill /F /IM httpd.exe

   

 

  可能遇到的错误:
  httpd.exe: Could not reliably determine the server's fully qualified domain name, using 23.23.16.96 for ServerName

  解决:httpd.conf 中 添加 ServerName localhost:80 (或者可能使用真实IP)即可。——这个其实与ssl无关的

 

 

posted @ 2014-04-16 10:56  Shautch Donne  阅读(709)  评论(0)    收藏  举报