php开启php_gd2,IIS下开启php扩展失效? IIS下开启php扩展gd2失效?

>用户反应,空间不支持GD。系统环境是IIS PHP。

>先用phpinfo探了一下,确实没有找到gd的影子。然后检查php.ini,发现gd扩展没有开启(windows下安装的php,其所有php扩展默认都处于关闭状态)。于是删除extension=php_gd2.dll前面的注释符号,然后重新跑phpinfo,发现还是没有gd。

>后来看到,在php.ini关闭\开启扩展的设置上面,有这样一句话:

>; Be sure to appropriately set the extension_dir directive.

>看来除了取消extension=php_gd2.dll的注释外,还要设置extension_dir。查看当前设置的是当前目录(即php.ini所在目录):

>extension_dir = "./"

>这明显是不对的。因为php.ini是放在c:\windows目录下,而php_gd2.dll一类的dll文件是放在C:\php\ext目录下。于是将其修改为:

>extension_dir = "C:\php\ext"

>然后再试,还是不行。。。

>后来在网上找的一些解决方案,说要把php_gd2.dll文件放到system32目录。但事实证明,并非如此。

>尝试将extension_dir的设置改回“./”,并把php_gd2.dll复制到windows目录,但依然没有奏效。

>后来发现,phpinfo显示的extension_dir既不是“C:\php\ext”,也不是“./”,而是c:\php5。看来这才是症结所在。

>于是再确认一次extension_dir的设置,没有发现问题。

>后来一想,会不会是系统中存在多个php.ini,而我修改的并不是系统所加载的php.ini。于是用phpinfo查看当前加载的php.ini,发现系统定义的php.ini路径是c:\windows没错,但系统加载的php.ini竟然是none:

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==>难道是php.ini文件的权限问题。于是尝试为其添加everyone的读取\执行权限,然后重试,发现php.ini可以正常被加载了:

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==>extension_dir也随之生效:

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==>而且gd也显示支持了:

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==>综上,当IIS下开启php扩展失效时,可以检查以下几点:

>1、php.ini里是否有开启对应的扩展;

>2、extension_dir设置的目录是否正确,以及该目录下是否有对应的dll文件;

>3、php.ini文件是否有开通everyone读取\执行的权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值