致命错误:调用未定义的函数mcrypt_encrypt()
注意: MCrypt支持依赖的库尚未更新多年,并且MCrypt不应再被认为是可行或安全的数据加密方法。更重要的是,MCrypt在PHP 5中已被弃用,并且在PHP 7中完全删除。如果您有任何运行MCrypt的代码,您应该重构它以使用更现代的加密库。致命错误:调用未定义的函数mcrypt_encrypt()
有谁知道为什么这个错误信息:(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.dll
到extension=php_mcrypt.dll
您没有安装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"
还有一事情:如果您通过Apache等Web服务器提供PHP,请尝试重新启动Web服务器。这将“重置”可能存在的任何PHP模块,激活新的配置。
假设你使用的是Debian的Linux(我使用Linux Mint的12,问题是Ubuntu的LTS 12.04.1服务器上我ssh'ed到。)
我建议采取@dkamins的建议,并确保你有mcrypt安装并在您的php5安装中处于活动状态。使用“sudo apt-get install php5-mcrypt”进行安装。我的笔记如下。
使用PHP版本PHP Version 5.3.10-1ubuntu3.4
,如果你开的phpinfo()由@约翰孔德,您可以通过Web服务器上创建测试文件(如做建议如创建只是内容“”对任何地方访问状态页面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的建议,并安装了“sudo apt-get install php5-mcrypt”的软件包,然后像上面那样重新启动apache。然后我的错误消失了,我的应用程序正常工作。
Ubuntu下我有问题,并用
$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload
为我工作。但我不得不手动重新加载apache! – Peter 2014-04-03 12:03:53
用于基于Linux(Fedora的)
yum -y install php-mcrypt
解决它启用通过添加模块: '延伸= mcrypt.so' 到PHP。 INI。 (/etc/php.ini)
systemctl restart httpd.service
完成!
对于windows
;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
仍然无法正常使用?
sudo php5enmod mcrypt && sudo service apache2 restart
如果您最近更新到这里的Ubuntu 14.04是修复了这个问题:
$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
工作!谢谢!。只是最后两行。 – 2014-09-09 07:46:10
你的答案比接受的答案好。 – Fuser97381 2014-09-26 19:21:35
'mcrypt.ini'已经在我安装的'/ etc/php5/mods-available /'中,所以我只需要运行php5enmod。 – nullability 2014-09-27 16:02:00
在Ubuntu 14.10:
安装模块的mcrypt
sudo apt install php5-mcrypt
启用模块mcrypt在apache2上
sudo a2enmod mcrypt
刷新模块配置
sudo service apache2 restart
我认为你的意思是: 'sudo php5enmod mcrypt' – 2015-10-28 11:05:45
'php5enmod'和'php5dismod'是在debian系统上为php(> = 5.4.0〜rc6-1)引入的新命令。根据这篇文章http://php.net/manual/fr/mcrypt.setup.php#116231你只需要做sudo'apt-get install php5-mcrypt''sudo php5enmod mcrypt''sudo service apache2 reload' – alphayax 2015-11-11 11:27:24
检查并安装PHP5-mcrypt的:
sudo apt-get install php5-mcrypt
在Linux Mint的17.1丽贝卡 - 调用未定义功能mcrypt_create_iv ...
解决加入下面一行到php.ini
extension=mcrypt.so
一个
service apache2 restart
后解决它?
如果你正在使用PHP5-FPM做remeber重新启动它,如果你使用Ubuntu 14.04在这里安装mcrypt的
服务PHP5-FPM重启
后是修复了这个问题:
首先检查PHP5-mcryp已经安装apt-get install php5-mcrypt
如果安装了,只要运行这个两个命令或安装并运行此两个命令
$ sudo php5enmod mcrypt
$ sudo service apache2 restart
我希望它能起作用。
对我来说,它有助于卸载用的mcrypt:
sudo apt-get purge php5-mcrypt
,只是重新安装:
sudo apt-get install php5-mcrypt
不要忘记如上所述重新启动Apache。
不知道为什么和这种情况在我的情况下有什么不同(使用配置php55的虚拟机),但也许这会帮助其他人。我也有这个问题,像一些其他模块像xcache ...
我有同样的问题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)
这工作!但只需要php7.0-mcrypt。安装完成后重新启动apache,它现在在phpinfo()上显示mcrypt; 'Registered Stream Filters \t zlib。*,string.rot13,string.toupper,string.tolower,string.strip_tags,convert。*,consume,dechunk,convert.iconv。*,mcrypt。*,mdecrypt。*' – 2017-04-19 12:28:30
您运行的是哪个版本的PHP? – 2010-04-09 00:51:47
也许你有PHP 4.0.1,这是一个4.0.2函数。在这里正常运行。 – Ben 2010-04-09 00:54:56
我有版本5.2.8,我也得到未定义的函数错误。 – 2010-04-09 00:57:47