使用php5apache2_4.dll时,php_intl.dll不工作
在我安装的64位Windows 7上:使用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()我看到加载的
- Apache 2.4.23 x86 VC11线程安全
- php 5.6.27-Win32-VC11-x86
...
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的同一目录上它已经设置了绝对路径(我更新了问题)