在我安装的Windows 7 64bit上:
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_intl.dll' - 找不到指定的模块。\ r \ n在第0行的未知中
并通过网络服务器extension_loaded(' intl')为false。
其他扩展(如肥皂或卷曲)工作正常。
你能帮助我吗?
答案 0 :(得分:2)
我做了一些测试:将icuuc57.dll,icuin57.dll,icuio57.dll复制到Apache bin目录后,PHP警告消失,扩展intl通过Web服务器正常工作。
所以我以更好的方式解决了它,包括系统%PATH%变量上的D:\ devapps \ php(我有不同版本的PHP,所以我没有设置它。)
似乎apache无法获取并加载这些DLL,即使它们位于php5apache2_4.dll的同一目录下
答案 1 :(得分:0)
检查 php.ini 中extension_dir
指令的值。
如果它只是 ext ,请尝试将其更改为绝对路径,例如 D:/ devapps / php / ext (如果这是正确的路径)。