92

在我将系统从 Ubuntu 13.04 升级到 13.10 之后,apache、mysql 和 php 配置出现了几个问题。

我解决了大部分问题,但我似乎无法让 mCrypt 库正常工作。软件包已安装,所以我不需要 apt-get 它。服务器工作正常,一切似乎都很好,但是当我尝试php artisan serve使用 Laravel 4 运行时,我收到一条消息,提示需要 mCrypt。

我做到php --ri mcrypt了,输出是Extension 'mcrypt' not present. 我尝试过extension=mcrypt.so的,/etc/php5/apache2/php.ini但是没有用。

有任何想法吗?

的输出dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install
4

10 回答 10

273

我想我在launchpad.net找到了解决方案。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

这对我有用。

于 2013-10-18T10:42:10.797 回答
27

我在使用 Ubuntu 14.04 时遇到了这个问题,我执行了以下操作来解决它:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart
于 2014-05-22T09:18:45.753 回答
14

安装后 Ubuntu 14.04 也有这个问题。

首先启用 mcrypt

sudo gedit /etc/php5/apache2/php.ini

在任意行添加此命令

extension=mcrypt.so

在 /etc/php5 中创建 conf.d 文件夹

sudo mkdir conf.d

并在该文件夹中创建 mcrypt.ini 文件

sudo gedit mcrypt.ini 

然后将此命令添加到该文件

extension=mcrypt.so

然后创建一个文件链接

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available

启用 mcrypt 模块

sudo php5enmod mcrypt

重启阿帕奇

sudo service apache2 restart
于 2014-05-16T04:47:51.823 回答
11

从 Ubuntu 13.10 到 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

为我工作。

于 2014-06-22T19:03:00.573 回答
3

我在使用 Ubuntu 14.04 和 Nginx 时也遇到了这个问题,但是我的提示是重新启动 FPM 服务,所以我这样做了:

安装库

apt-get 安装 php5-mcrypt

找到路径

更新b && 定位 mcrypt.so

在位于 /etc/php5/mods-available/mcrypt.ini 的 mcrypt.ini 文件中设置 mcrypt.so 的路径

扩展=/usr/lib/php5/20121212/mcrypt.so

然后重启FPM服务

服务 php5-fpm 重启

于 2016-03-07T10:57:25.483 回答
0

如果软件包已经安装,另一种解决方案:

sudo aptitude reinstall php5-mycript

升级后这对我有用

于 2014-03-09T03:04:49.827 回答
0

试试这个代码:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
于 2014-09-03T16:58:07.090 回答
0

我在 Mac OS X Yosemite 上运行 PHP 5.5.14 时遇到了同样的问题。我试图安装 Laravel 5.0。当我尝试创建一个新项目时,出现如下错误(即使我尝试使用php artisan serve启动 laravel 服务器

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

所以我只是用 nano 编辑器在我的 php.ini 文件末尾添加了以下行:

extension=mcrypt.so
sudo nano /etc/php.ini

最后只需重新启动终端并使用以下命令重新启动 laravel 应用服务器

php artisan serve

它工作正常!

于 2015-03-01T01:54:08.670 回答
0

刚刚在 php.net 上找到

注意,对于 Ubuntu,简单地安装 php5-mcrypt 并不能让 mcrypt 工作。您需要以 root 身份执行以下命令才能启用它:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609

于 2015-04-18T09:24:57.443 回答
0

有时,出现此“问题”是因为您在本地机器上而不是在虚拟机上输入了工匠命令。如果你使用 Homestead,mcrypt 已经安装。认为这是一个提醒homestead ssh

于 2015-07-04T08:52:01.030 回答