无法为 PHP5 获取 mcrypt

web*_*ave 29 php aptitude apache2

我已经做过很多次了:

sudo aptitude install php5-mcrypt

sudo apache2ctl restart
Run Code Online (Sandbox Code Playgroud)

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

有谁知道可能有什么问题?我不知道哪些部分应该放在什么地方以及所有这些应该如何组合在一起。

我安装了 PHP 5.5.3

小智 62

尝试这个

sudo php5enmod mcrypt

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。但是我不需要第一个命令(ln)。我在 /etc/php5/apache/conf.d 文件夹中没有 mcrypt.ini。运行 sudo php4enmod mcrypt 工作。现在在那里归档。服务器工作!非常感谢。 (4认同)

小智 11

我在 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:****   
Run Code Online (Sandbox Code Playgroud)

我安装mcryptphp5-mcrypt使用资质,仍然php -m没有表现出mcrypt作为一个加载的扩展:

aptitude install mcrypt
aptitude install php5-mcrypt
Run Code Online (Sandbox Code Playgroud)

我跑了updatedb,然后locate mcrypt。我mcrypt.ini/etc/php5/conf.d. 然而,所有其他扩展(如 json)都有它们的 .ini 文件/etc/php5/apache2/conf.d和.ini 文件 /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
Run Code Online (Sandbox Code Playgroud)

对于/etc/php5/apache2/conf.d.

瞧,它出现了php -m


Hen*_*eck 2

看起来 Apache 调用 PHP 时加载 libmcrypt 的 ini 片段丢失了。应该有一个名为/etc/php5/apache2/conf.d/mcrypt.ini以下内​​容的文件

; configuration for php MCrypt module
extension=mcrypt.so
Run Code Online (Sandbox Code Playgroud)

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