旧的php站点不能在新的IIS服务器上工作,需要使用GD库,但不能弄清楚


Old php site not working on new IIS server, need to use GD library but can't figure it out

我一直在开发我们的基于php的网站在一个开发盒是设置当我开始我的新工作几个月前。我刚得到一个新的开发盒,我有一些真正的麻烦,让我的IIS服务器与网站一起工作。

我正在运行windows 7 64位和IIS7。

我在尝试加载站点时得到这个错误:

Fatal error: Call to undefined function imagecreatefromgif() in filepath:// line:#

我已经做了一些搜索,发现这个特定的函数是GD库的一部分,我需要在php.ini文件中启用它。大多数网站都说我需要取消这行extension=php_gd2.dll的注释,但它不在那里,所以我添加了它。我从旧的测试盒中取出php_gd2.dll文件,并将其放在指定的文件夹中

extension_dir ="C:'Program Files (x86)'PHP'v5.2'ext"

我应该指出,我必须使用php5.2,我们使用一个名为ezpdf的库来创建pdf,它包含数百个对magic_quotes_runtime的引用,旧的开发箱实际上运行php5.0,但我找不到任何早于5.2的东西,据我所知,神奇的引号应该是php5.3之前的一个问题。

无论如何,使用IIS7中的php管理器,我可以看到php_gd2.dll是启用的,但是如果我查看phpinfo(),我可以看到没有GD的引用。

无论我尝试什么,我得到同样的错误,有没有人有任何想法!?

GD不只是加载到php中的.dll。PHP .dll引用的其他库中还有相当多的其他代码。要使它在IIS中工作,您需要整个GD设置,而不仅仅是一个php_gd.dll。

引用magic_quotes_runtime本身并不是"坏"的——很多库必须处理在旧的PHP版本下运行的问题,其中magic_quotes是默认启用的,并为这个事实做适当的补偿。但是,如果ezpdf重现了magic_quotes行为,那么绝对是时候升级版本或切换到更好的版本了。Magic_quotes被弃用是有原因的,以任何方式/形状/形式重新启用它都是一个坏主意。