9

我一直在尝试让 intl 扩展在我的测试工作站(PHP 5.5.1、Apache 2.2.4、Windows 7 32 位)上工作。似乎无论我尝试什么,我都无法启动并运行它。

  • 我在 php.ini 中取消了“extension=php_intl.dll”行的注释。
  • 我已验证 extension_dir 指令指向正确的目录 (c:\wamp\php5.5\ext)。
  • 我已验证 php_intl.dll 位于 c:\wamp\php5.5\ext 中。
  • 我已验证所有 icu*.dll 文件都存在于 php 根目录 (c:\wamp\php5.5) 中。
  • 我已经验证 c:\wamp\php5.5 在我的 PATH 中。
  • 是的,我正在编辑的 php.ini 副本是正确的,它由 httpd.conf 中的 PHPIniDir 指令指定。

我检查了 Apache 错误日志,每次重新启动 Apache 时都发现了这一行:

PHP 警告:PHP 启动:无法加载动态库 'c:\wamp\php5.5\ext\php_intl.dll' - 找不到指定的模块。\r\n 在第 0 行未知

我再说一遍,但是 c:\wamp\php5.5\ext\php_intl.dll 确实存在!

我很想尝试指向 Windows 资源管理器并对我的电脑大喊:“看!臭文件就在那儿!” 知道为什么我可以看到文件而 PHP 看不到,即使我们显然在同一个目录中查找?还是我错过了其他事情?

4

7 回答 7

18

确保 Apache 可以从 PHP 基本目录中找到并加载 icu*.dll 文件。

快速、简单的解决方案是将这些 dll 复制到 Apache bin 目录。

于 2013-09-21T16:58:55.827 回答
5

尽管 SeventyFourLaboratories 的解决方案简单且有效,但有一个解决方案不需要您修改 Apache 或 PHP 发行版(有时,您不允许在生产服务器中更改它们)。

你说你已经验证C:\wamp\php5.5在你的PATH. Windows 有两种环境变量:用户变量和系统变量。

我尝试C:\wamp\php5.5在我的用户变量中进行设置PATH,但它不起作用。但是,将其设置在系统变量PATH中使其工作。因此,您应该验证您使用PATH系统变量来配置 Apache,而不是使用同名的用户变量。

于 2014-04-21T12:00:03.977 回答
3

我遇到了同样的问题,在解决这个问题近 5 个小时后,我终于解决了。我必须做出两个主要的改变。

1) 当我下载我尝试使用的扩展时,除了 .dll 文件之外,它还附带了许多其他文件——其中大多数是 .pdb。我将它们全部移动到包含 .dll 文件的 ext 文件夹中。

2) smaines 在 alaya dot com上作为评论提供答案给了我需要做的第二件事 - 将 ext 文件夹的路径添加到 windows $PATH 变量。

有很多方法可以做到这一点,这里是一种:

  • 去我的电脑
  • 右键单击并选择属性
  • 点击左侧的“高级系统设置”
  • 单击顶部的“高级”选项卡
  • 单击“环境变量”按钮
  • 搜索变量列表以找到“路径”变量,选择它
  • 单击“编辑...”按钮(选择“路径”变量时)
  • 这将打开另一个带有两个输入字段的对话框。底部是变量,选择它。
  • 在末尾附加一个分号,然后是路径,在这种情况下,您将键入 ';C:\wamp\php5.5\ext' (分号只是将其与先前的路径分开
  • 在出现的所有对话框中单击“确定”以关闭它们

进行上述更改后,您需要重新启动计算机以使其生效。

我希望这会有所帮助,它对我有用。看起来这是一个相当普遍的问题——至少我发现了很多关于它的讨论和它的变体。

于 2014-08-08T19:32:07.833 回答
3

这让我发疯了。我的路径中有所有 icu dll 等。最后安装 Visual C++ 2015 x86为我解决了这个问题。

于 2017-03-30T13:02:05.353 回答
1

如何将您的 PHP.exe 位置添加到 PATH。

(Windows 7 图形用户界面)

对于“环境变量:系统变量”的管理员访问权限,请按照此处的说明进行操作: https ://kb.wisc.edu/cae/page.php?id=24500

在“环境变量:系统变量”中,编辑“路径”变量并在现有字符串前面加上您的位置(不要删除它)。例如:C:\wamp\bin\php\php5.5.12;

  • 为我工作。
于 2014-07-25T08:10:33.327 回答
1

完整的解决方法是更改​​ 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',
);
于 2014-06-03T17:27:07.550 回答
0

更正上述消息

如果要将 php 文件夹添加到 PATH,请确保添加 php 文件夹,而不是 php/ext 文件夹。

在我的情况下,它是 C:\wamp\bin\php\php5.5.12,而不是 C:\wamp\bin\php\php5.5.12\ext。

于 2015-08-04T00:39:36.013 回答