Ubuntu升级到13.10后不存在mCrypt


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

您确定安装了dpkg --get-selections | grep php5

apt-get install php5-mcrypt?
Lajos Veres

1
我已经用@tlenss命令的输出更新了问题。sudo apt-get install php5-mcrypt输出已安装和最新版本
VukStanković13年

2
也许这里的回答将帮助你askubuntu.com/questions/360646/...
tlenss

在该页面上发现了启动板错误,这给了我解决方案。谢谢
VukStanković13年

Answers:


273

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

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

这对我有用。


感谢这个答案,Opencart的1.5.6这个问题是造成错误...致命错误:调用未定义功能mcrypt_create_iv()在/ <这里路径> /system/library/encryption.php第8行
AndyGaskell

值得注意的是,这种解决方案在Laravel / Artisan中对我不起作用,直到我还在 /etc/php5/cli/conf.d中进行了符号链接
David M

我得到这个error.Which码我要更新我需要更新的文件请建议..?
user2089987

这导致Webgility不同步。安装它可以将其正确固定。谢谢!
瑞安

2
使用Ubuntu 14.04 / PHP5.5,不需要第一行。php5enmod建立链接。
Wolk

27

我在Ubuntu 14.04上遇到了这个问题,并且做了以下操作来解决它:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
这对我有用,我有PHP版本5.5.9-1ubuntu4.4,并且没有/etc/php5/conf.d目录。
flcoder 2014年

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

重新启动Apache

sudo service apache2 restart

3
你不需要extension=mcrypt.sophp.ini。没有php,它也可以工作,因为php扩展名(如mcrypt)位于单独的.ini文件中。
machineaddict 2014年

@machineaddict对我来说,在安装mcrypt之后添加'extension = mcrypt.so'是可行的。Lubuntu 14.04 Trusty Thar。我是不是自动加载
克兰河Dsilva

11

从Ubuntu 13.10到14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

为我工作。


对我来说:WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available。但是,该文件位于其他位置。sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/并运行上面的命令。取自 www.devraju.com
machineaddict

3

我在Ubuntu 14.04和Nginx上也遇到了这个问题,但是对我来说,提示是重新启动FPM服务,所以我做了:

安装库

apt-get安装php5-mcrypt

找到道路

已更新&查找mcrypt.so

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

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

然后重新启动FPM服务

服务php5-fpm重新启动


我只需要apt-get install php5-mcrypt,然后在ubuntu 14.04上重新启动服务php5-fpm。
deanpodgornik

很好。在我的情况下,需要手动查找mcrypt库,因为该扩展名在mcrypt.ini文件中为空。
德里克·利马

0

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

sudo aptitude reinstall php5-mycript

升级后对我有用



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

而且效果很好!


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/zh/mcrypt.installation.php#114609


0

有时,发生此“问题”是因为您在本地计算机而不是虚拟机上输入了artisan命令。如果您使用的是Homestead,则已经安装了mcrypt。认为这提醒homestead ssh

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.