首先,curl依赖于openssl和zlib,要想启用curl库必须首先启用openssl和zlib。Apache服务器有内置SSL支持的安装包,PHP这边还需要修改php.ini启用openssl这个扩展,反注释extension=php_openssl.dll即可。
其次,启用libcurl,libcurl是PHP开发者集成在PHP里面的一套curl的实现方法,要启用它首先要反注释extension=php_curl.dll。我们可以使用php -i | find "curl"在跟踪PHP的加载模块的信息,发现到了这里如果试图加载curl,PHP会报告一个警告,告诉我们加载zlib失败。
因此我们还需要为PHP添加zlib的扩展,即zlib.dll。这个dll应用很广泛,我们可以到miranda im去下载它的一个安装包,选择绿色安装,根目录下就有个zlib.dll。把zlib.dll拷贝到php的根目录下,再运行一次php -i | find "curl"观察,现在PHP已经可以正确加载curl库了。
这时实际上你的PHP已经可以正常工作了,使用php -i > result.txt文本编辑器打开result.txt会发现。
最后,经过上面的一番折腾,如果你在网页中调用phpinfo()会发现curl并没有被加载,通过仔细观察,我发现是因为Apache没有正确加载PHP运行的环境变量所致。
_SERVER["PATH"]这个字段貌似返回的是系统的环境变量,而不是用户的环境变量。因此需要修改注册表,把我们的PHP目录加入系统环境变量里面去。编辑注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment中PATH字段,把PHP.ini所在的目录加入到系统环境变量中,重启Apache后,libcurl终于可以在Apache服务器中使用了。
PS:这套操作以后已经更新到我的WAMP-helper中了。