我已经多次这样做了:
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 进行了安装mcrypt
,php5-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。