注意:的库mcrypt的支持是否取决于有没有在年更新一次,并应的mcrypt不再被认为是对数据进行加密的一种可行或安全的方法。更重要的是,这个Mcrypt已被弃用,在PHP 5中,而且完全在PHP 7.删除如果您有运行的mcrypt你应该重构它使用更现代化的加密库的任何代码。


没有人知道为什么此错误消息:?(Call to undefined function mcrypt_encrypt() )显示当我运行下面下面的代码

我错过了一些步骤,也许在PHP我的任何设置都做在此之前的代码可以工作?

$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';

$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
            $string, MCRYPT_MODE_CBC, md5(md5($key)));
有帮助吗?

解决方案

什么都为我用PHP 5.2.8版本的工作,是通过除去php.ini,即改变开拓php_mcrypt.dll并允许;扩展:

;extension=php_mcrypt.dllextension=php_mcrypt.dll

其他提示

如果您最近更新到Ubuntu 14.04这里是修复了这个问题:

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

有关视窗

;extension=php_mcrypt.dll to extension=php_mcrypt.dll 
 then restart your apache server

有关红帽

sudo yum install php55-mcrypt //if php5.5
sudo yum install php-mcrypt //if less than 5.4
sudo service httpd restart //if apache 2.4
sudo /etc/init.d/httpd restart //if apache 2.2 or less

有关的Ubuntu

sudo apt-get install php5-mcrypt
sudo service apache2 restart //if server not reloaded automatically 

还是不工作?

  

须藤php5enmod mcrypt的&&须藤服务apache2的重新启动

您没有安装的mcrypt库。

请参阅 http://www.php.net/manual/en/ mcrypt.setup.php 了解更多的信息。

如果您是在共享主机,你可以问你的供应商进行安装。


在OSX可以很容易地安装的mcrypt经由自制

brew install php54-mcrypt --without-homebrew-php

然后加入这一行/etc/php.ini中。

extension="/usr/local/Cellar/php54-mcrypt/5.4.24/mcrypt.so"

如果您使用PHP 7.2或至多:

  

此功能被废弃在PHP 7.1.0,并且在PHP 7.2.0除去。

源: http://php.net/manual/en/function。的mcrypt-encrypt.php

所以,你必须更换PHP代码,并没有找到一个的mcrypt解决方案。

或者,我只是发现了,你仍然可以在PHP 7.2.0使用mcrypt的,但你必须安装它作为一个PHP扩展社区图书馆。 ( https://pecl.php.net/

在于Debian / Ubuntu Linux发行版:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev

然后:

sudo pecl install mcrypt-1.0.1

来源:的https:// WWW .techrepublic.com /条/如何安装的-mcrypt的换PHP-7-2 /

Ubuntu下我有问题,并用解决了它

$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload

在的ubuntu 14.10:

安装模块的mcrypt

sudo apt install php5-mcrypt

启用apache2的

模块mcrypt的
sudo a2enmod mcrypt

刷新模块配置

sudo service apache2 restart

在Linux的薄荷17.1丽贝卡 - 呼叫未定义的函数mcrypt_create_iv ...

通过添加下面的行来在php.ini

解决
extension=mcrypt.so

这一个

service apache2 restart

解决它...

我有同样的问题, PHP 7 失踪mcrypt的版本。

这为我工作。

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
sudo service apache2 restart (if needed)

时mcrypt的启用?您可以使用 phpinfo() ,看它是否是。

一两件事:如果你是通过Web服务器提供服务的PHP如Apache,请尝试重新启动Web服务器。这将“复位”可能存在的任何PHP模块,激活新配置。

假设你正在使用的Debian的Linux(我使用Linux薄荷12,问题是Ubuntu的12.04.1 LTS服务器上我ssh'ed成。)

我建议采取@dkamins的建议,并确保你已经安装的mcrypt和活跃在你的PHP5安装。使用 “命令和apt-get安装PHP5-mcrypt的” 进行安装。我的记录的下方。

使用PHP版本PHP Version 5.3.10-1ubuntu3.4,如果通过@约翰孔德,您可以通过Web服务器上创建测试文件(建议做您打开phpinfo()函数例如,创建只有内容状态页testphp.php“”在服务器上的任何地方访问通过浏览器)

我发现状态页面上没有存在的启用或禁用状态在浏览器中打开时。当我然后打开php.ini文件,通过@Anthony Forloney提到的,思维取消注释;extension=php_mcrypt.dll to extension=php_mcrypt.dll

我是切换来回并重新启动Apache的(我运行的Apache2,您可以在我的设置与sudo /etc/init.d/apache2 restart重新启动,或者当你在该目录只是sudo restart我相信) 有变化,没有变化,但根本没有去。我把@dkamins建议,去与安装包“命令和apt-get安装PHP5-mcrypt的”,然后重新启动Apache作为以上。然后我的错误消失了,我的应用程序正常工作。

如果你正在使用PHP5-FPM千万记得要重新启动它,安装后的mcrypt

服务的php5-fpm的重新启动

如果您使用Ubuntu 14.04这里是修复了这个问题:

首先检查的php5-mcryp已经安装apt-get install php5-mcrypt

如果安装,只需运行这两个命令或安装并运行此两个命令

$ sudo php5enmod mcrypt
$ sudo service apache2 restart

我希望它会工作。

基于

用于Linux(Fedora的)

yum -y install php-mcrypt

通过将启用模块: '延伸= mcrypt.so' 为php.ini。 (/etc/php.ini中)

systemctl restart httpd.service

完成!

有关我它有助于卸载的mcrypt与:

sudo apt-get purge php5-mcrypt

和简单地重新安装:

sudo apt-get install php5-mcrypt

和不要忘记重新启动Apache如上所述。

不知道为什么,以及如何,这是在我的情况不同(使用供应php55虚拟机),但也许这将帮助别人。我也有这个问题,其他一些模块,如XCache将...

检查和安装的php5-mcrypt的:

sudo apt-get install php5-mcrypt
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top