当前位置: 首页>>技术教程>>正文


无法获得PHP5的mcrypt

, , ,

问题描述

我做了很多次:

sudo aptitude install php5-mcrypt

sudo apache2ctl restart

aptitude说安装了mcrypt。我已经重新安装了3次。自从我安装apache后,我重启了大约20次。当我看到phpInfo时,我没有看到列出的mcrypt。当我尝试执行我的代码时,它说mcrypt函数(选择一个 – 任何一个)不存在。 mcrypt显然没有启用。

有谁知道什么可能是错的?我不知道哪些碎片应该放在哪里以及如何将它们组合在一起。

我安装了PHP 5.5.3

最佳解决方案

试试这个

sudo php5enmod mcrypt

sudo service apache2 restart

次佳解决方案

我在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,然后找到mcrypt。我在/etc/php5/conf.d中找到了我的mcrypt.ini。然而所有其他扩展(如json)在/etc/php5/apache2/conf.d和/etc/php5/cli/conf.d中都有.ini文件。这两个都是../../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中!

第三种解决方案

看起来像缺少Apache调用PHP时加载libmcrypt的ini片段。应该有一个名为/etc/php5/apache2/conf.d/mcrypt.ini的文件,其中包含以下内容

; configuration for php MCrypt module
extension=mcrypt.so

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

第四种方案

默认情况下不启用mcrypt模块。启用mcrypt模块,然后重新启动apache(credit)

sudo php5enmod mcrypt
sudo service apache2 restart

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6449.html,未经允许,请勿转载。