cvlig 发表于 2015-8-22 08:27:36

解决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无关的
  
  
页: [1]
查看完整版本: 解决wamp组合下加载php的extension