[英]Why can't PHP on Windows see extension php_intl.dll even though it exists?
我一直在努力让我的测试工作站(PHP 5.5.1,Apache 2.2.4,Windows 7 32位)上运行intl扩展。 似乎无论我尝试什么,我都无法启动和运行。
我检查了Apache错误日志,并在每次重新启动Apache时发现此行:
PHP警告:PHP启动:无法加载动态库'c:\\ wamp \\ php5.5 \\ ext \\ php_intl.dll' - 找不到指定的模块。\\ r \\ n在第0行的未知中
我重复一遍,但c:\\ wamp \\ php5.5 \\ ext \\ php_intl.dll存在!
我很想尝试指着Windows资源管理器并在我的电脑上大喊:“看!STINKIN'文件就在那里!” 知道为什么我可以看到文件和PHP,即使我们显然在同一个目录中看到它? 或者是我错过的其他事情?
确保Apache可以从PHP base dir中找到并加载icu * .dll文件。
快速,简单的解决方案是将这些dll复制到Apache bin目录。
尽管SeventyFourLaboratories的解决方案很简单且有效,但是有一种解决方案不需要您修改Apache或PHP发行版(有时,您不允许在生产服务器中更改它们)。
你说你已经验证了C:\\wamp\\php5.5
在你的PATH
。 窗口有两种环境变量:用户和系统变量。
我试图在我的用户变量PATH
设置C:\\wamp\\php5.5
,但它不起作用。 但是,在系统变量PATH
设置它可以使它工作。 因此,您应该验证是否使用PATH
系统变量来配置Apache而不是具有相同名称的用户变量。
我有这个完全相同的问题,经过近5个小时的工作,我终于得到了解决。 我必须做出两个主要的改变。
1)当我下载我试图使用的扩展时,除了.dll文件之外还有许多其他文件 - 大多数是.pdb。 我将所有这些文件移动到包含.dll文件的ext文件夹中。
provided as a comment here gave me the second thing that I needed to do - add the path to the ext folder to windows $PATH variable. 2) 作为注释提供答案在这里给了我,我需要做的第二件事-路径添加到ext文件夹到Windows $ PATH变量。
有很多方法可以做到,这里有一个:
完成上述更改后,您需要重新启动计算机才能生效。
我希望有所帮助,它对我有用。 这似乎是一个相当普遍的问题 - 至少我发现了很多关于它的讨论和它的变化。
这让我发疯了。 我在我的路径上有所有icu dll等。最后安装Visual C ++ 2015 x86为我解决了它。
完整的修复方法是更改C:\\ wamp \\ scripts \\ config.inc.php,如下所示:
找到该文件的此部分
$phpDllToCopy = array (
'fdftk.dll',
'fribidi.dll',
'libeay32.dll',
'libmhash.dll',
'libmysql.dll',
'msql.dll',
'libmysqli.dll',
'ntwdblib.dll',
'php5activescript.dll',
'php5isapi.dll',
'php5nsapi.dll',
'ssleay32.dll',
'yaz.dll',
'libmcrypt.dll',
'php5ts.dll',
'php4ts.dll');
并改为
$phpDllToCopy = array (
'fdftk.dll',
'fribidi.dll',
'icudt51.dll', // - Additions to avoid unknown error PHP 5.5.5
'icuin51.dll',
'icuio51.dll',
'icule51.dll',
'iculx51.dll',
'icutest51.dll',
'icutu51.dll',
'icuuc51.dll',
'icudt50.dll', // - Additions to avoid unknown error PHP 5.5
'icuin50.dll',
'icuio50.dll',
'icule50.dll',
'iculx50.dll',
'icutest50.dll',
'icutu50.dll',
'icuuc50.dll',
'icudt49.dll', // - Additions to avoid unknown error PHP 5.3/5.4
'icuin49.dll',
'icuio49.dll',
'icule49.dll',
'iculx49.dll',
'icutest49.dll',
'icutu49.dll',
'icuuc49.dll',
'libeay32.dll',
'libmhash.dll',
'libmysql.dll',
'libsasl.dll', // - Additions to avoid unknown error
'msql.dll',
'libmysqli.dll',
'ntwdblib.dll',
'php5activescript.dll',
'php5isapi.dll',
'php5nsapi.dll',
'ssleay32.dll',
'yaz.dll',
'libmcrypt.dll',
'php5ts.dll',
'php4ts.dll',
);
如何将您的PHP.exe位置添加到PATH。
(Windows 7 GUI)
要获得“环境变量:系统变量”的管理员访问权限,请按照以下说明操作: https : //kb.wisc.edu/cae/page.php?id = 24500
在“环境变量:系统变量”中,编辑“路径”变量并在现有字符串前缀(不要删除它),并附上您的位置。 例如:C:\\ wamp \\ bin \\ php \\ php5.5.12;
对上述消息的更正
如果要将php文件夹添加到PATH,请确保添加php文件夹,而不是php / ext文件夹。
在我的情况下它是C:\\ wamp \\ bin \\ php \\ php5.5.12,而不是C:\\ wamp \\ bin \\ php \\ php5.5.12 \\ ext。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.