在PHP安装中启用Mcrypt

5
我在Windows平台上安装了PHP 5.2.14(通过.msi文件安装)和Apache 2.2.16。该安装包含ext/php_mcrypt.dll和libmcrypt.dll,但是当我取消注释php.ini中的extension=php_mcrypt.dll并重启Apache时它并没有生效,phpinfo()也未显示任何有关php_mcrypt.dll的信息。我错过了什么吗?
更新:
我查看了错误日志,并发现以下内容:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP5\ext\php_mcrypt.dll' - The specified module could not be found.\r\n in Unknown on line 0 我查询了一些资料,发现没有将任何PHP dll文件存储在windows32/文件夹中,所以我感到困惑。

2
你确定你正在编辑正确的 php.ini 文件吗?检查你的 phpInfo() 来查看哪个 ini 文件被加载了。 - Cyclonecode
如果安装不在生产环境中,并且可以承受停机时间,我会直接安装最新版本。 - justacoder
C:\PHP5\ext 是 php_mcrypt.dll 的位置吗?在 Windows 上,该路径可能也区分大小写。如果该路径不正确,请尝试更改 php.ini 中的 extension_dir 或尝试 extension=C:/path/to/php/ext/php_mcrypt.dll - drew010
@Angry Spartan,你解决了这个问题吗?你是怎么做到的? - NotGaeL
我尝试将mcrypt扩展的完整路径放入其中,但Apache无法重新启动。我收到了错误提示:**[warn] pid file C:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?** - justacoder
显示剩余2条评论
3个回答

3
其他答案已经提供了关于检查 \ext\php_mcrypt.dll 是否存在并在 php.ini 中启用扩展的必要步骤。除此之外,您还需要将 {Your-PHP-Root}\libmcrypt.dll 复制到 {Your-Apache-Root}\bin,然后重启 Apache,这个问题就应该解决了。

1

我通过教程的结合解决了这个问题:

  1. 将libmcrypt.dll添加到System32文件夹中
  2. 取消php.ini中include_path变量的注释,并添加到ext路径
  3. 重新启动Apache

值得庆幸的是,不需要系统重启。无论上述哪一个或两个步骤是必要的,现在都不重要了,因为mcrypt已经正常工作了。谢谢大家。


0

我已经将路径添加到Windows中,但是没有效果,如果需要重新启动,则必须安排停机时间才能进行。 - justacoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接