当前位置:  开发笔记 > 编程语言 > 正文

致命错误:调用未定义的函数mcrypt_encrypt()

如何解决《致命错误:调用未定义的函数mcrypt_encrypt()》经验,为你挑选了8个好方法。

注意: MCrypt支持的库依赖于多年未更新,MCrypt不应再被视为加密数据的可行或安全方法.更重要的是,这个Mcrypt已被弃用,在PHP 5中,而且完全在PHP 7.删除如果您有运行的mcrypt你应该重构它使用更现代化的加密库的任何代码.


有谁知道为什么这个错误信息:(Call to undefined function mcrypt_encrypt() )当我在下面运行以下代码时显示?

我错过了一些步骤,也许在这个代码可以工作之前我必须做的任何设置?

$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)));

flor.. 89

如果你最近更新到ubuntu 14.04这里是解决这个问题的方法:

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

`mcrypt.ini`在我的安装中已经在`/ etc/php5/mods-available /`中,所以我只需要运行php5enmod. (3认同)

我启动了一台新机器并且没有安装mcrypt - 不要忘记确保在此步骤之前使用`$ sudo apt-get install php5-mcrypt`安装mcrypt,然后检查http://askubuntu.com /问题/ 460837/mcrypt的扩展,是缺失,在-14-04-server - 对于MySQL的 (3认同)


Anthony Forl.. 34

PHP版本5.2.8对我有用的是打开php.ini并允许php_mcrypt.dll扩展,删除;,即更改:

;extension=php_mcrypt.dllextension=php_mcrypt.dll



1> flor..:

如果你最近更新到ubuntu 14.04这里是解决这个问题的方法:

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


`mcrypt.ini`在我的安装中已经在`/ etc/php5/mods-available /`中,所以我只需要运行php5enmod.
我启动了一台新机器并且没有安装mcrypt - 不要忘记确保在此步骤之前使用`$ sudo apt-get install php5-mcrypt`安装mcrypt,然后检查http://askubuntu.com /问题/ 460837/mcrypt的扩展,是缺失,在-14-04-server - 对于MySQL的

2> Anthony Forl..:

PHP版本5.2.8对我有用的是打开php.ini并允许php_mcrypt.dll扩展,删除;,即更改:

;extension=php_mcrypt.dllextension=php_mcrypt.dll



3> Sabbir..:

对于窗户

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

对于Redhat

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



4> dkamins..:

您没有安装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"



5> Fabian Thomm..:

如果您使用的是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/article/how-to-install-mcrypt-for-php-7-2/



6> Pierre de LE..:

在Ubuntu下我遇到了问题并解决了它

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



7> alphayax..:

在ubuntu 14.10上:

安装模块mcrypt

sudo apt install php5-mcrypt

在apache2上启用模块mcrypt

sudo a2enmod mcrypt

重新加载模块配置

sudo service apache2 restart


我想你的意思是:`sudo php5enmod mcrypt`

8> 小智..:

在Linux Mint上17.1 Rebecca - 调用未定义的函数mcrypt_create_iv ...

通过在php.ini中添加以下行来解决

extension=mcrypt.so

之后一个

service apache2 restart

解决了......

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有