使用php5apache2_4.dll时,php_intl.dll不工作

使用php5apache2_4.dll时,php_intl.dll不工作,php,windows,apache,intl,Php,Windows,Apache,Intl,在我安装的64位Windows 7上: Apache 2.4.23 x86 VC11线程安全 php 5.6.27-Win32-VC11-x86 Apache httpd.conf: ... LoadModule php5_module "D:/devapps/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "D:/devapps/php" ... 一切正常,使用phpInfo()我看到加载的

在我安装的64位Windows 7上:

  • Apache 2.4.23 x86 VC11线程安全
  • php 5.6.27-Win32-VC11-x86
Apache httpd.conf:

...
LoadModule php5_module "D:/devapps/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "D:/devapps/php"
...
一切正常,使用phpInfo()我看到加载的PHP.ini是正确的(PHPIniDir),并且启用了扩展intl:

PHP.ini

...
extension_dir = "D:/devapps/php/ext"
...
extension=php_intl.dll
...
当我用命令行测试它时:

php.exe -c \devapps\php -r "echo '[' . extension_loaded('intl') . ']';"
它报告扩展已正确加载(输出:[1]),没有任何警告

但如果我查看apache日志,我会看到以下错误:

PHP警告:PHP启动:无法加载动态库“D:/devapps/PHP/ext\PHP\u intl.dll”-找不到指定的模块。\r\n在第0行的“未知”中

通过web服务器扩展加载的('intl')为false

其他扩展(如soap或curl)工作正常


您能帮我吗?

检查php.ini中
extension\u dir
指令的值


如果只是ext,请尝试将其更改为绝对路径,例如D:/devapps/php/ext(如果这是正确的路径)。

我做了一些测试:将icuuc57.dll、icuin57.dll、icuio57.dll复制到Apache bin目录后,php警告消失,扩展intl通过web服务器正常工作

因此,我以更好的方式解决了它,包括在系统%PATH%变量上的D:\devapps\php(我有不同版本的php,所以我没有设置它)


apache似乎无法获取和加载这些DLL,即使它们位于php5apache2_4.DLL的同一目录上

它已经设置了绝对路径(我更新了问题)