无法获取 PHP5 的 mcrypt

无法获取 PHP5 的 mcrypt

我已经多次这样做了:

sudo aptitude install php5-mcrypt

sudo apache2ctl restart

aptitude 提示已安装 mcrypt。我已经重新安装了 3 次。自从安装以来,我重启了 apache 大约 20 次。当我查看 phpInfo 时,没有看到列出 mcrypt。当我尝试执行代码时,它提示 mcrypt 函数(选一个 - 任意一个)不存在。显然没有启用 mcrypt。

有人知道哪里出了问题吗?我不知道哪些部分应该放在哪里,以及所有这些应该如何组合在一起。

我安装了 PHP 5.5.3

答案1

尝试这个

sudo php5enmod mcrypt

sudo service apache2 restart

答案2

我在 Ubuntu 13.10 上遇到了类似的问题。运行 composer install 时,它产生了相同的错误,最后以以下结果结束。

****Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-update-cmd event returned with an error

  [RuntimeException]  
  Error Output:****   

我使用 aptitude 进行了安装mcryptphp5-mcrypt但仍然php -m没有显示mcrypt为已加载的扩展:

aptitude install mcrypt
aptitude install php5-mcrypt

我运行了updatedb,然后locate mcrypt。我mcrypt.ini在 中找到了我的/etc/php5/conf.d。然而,所有其他扩展(如 json)的 .ini 文件都在 /etc/php5/apache2/conf.d和 中/etc/php5/cli/conf.d。这两个都是 的链接../../mods.available

因此,我随后转到mcrypt.ini/etc/php5/available-modules并设置了链接:

cd /etc/php5/cli/conf.d
ln -s ../../mods-available/mcrypt.ini 20-mcrypt.ini

对于 也同样如此/etc/php5/apache2/conf.d

瞧瞧,它出现在了php -m

答案3

似乎缺少在 Apache 调用 PHP 时加载 libmcrypt 的 ini 代码片段。应该有一个名为的文件,/etc/php5/apache2/conf.d/mcrypt.ini其内容如下

; configuration for php MCrypt module
extension=mcrypt.so

您应该能够从其他 PHP 集成的配置(如/etc/php5/cli/conf.d/mcrypt.ini)中复制它/etc/php5/conf.d/mcrypt.ini,具体取决于您的系统上安装的内容。

答案4

好了,就是这样。看起来有时我们正在寻找最复杂的方法来做像“enmod”这样简单的事情;)就像 Boinst 说的: sudo php5enmod mcrypt。然后重新加载 apache。

相关内容