问题描述
我做了很多次:
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的mcrypt
和php5-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