注意: 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.dll
至 extension=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
PHP版本5.2.8对我有用的是打开php.ini
并允许php_mcrypt.dll
扩展,删除;
,即更改:
;extension=php_mcrypt.dll
至 extension=php_mcrypt.dll
对于窗户
;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
您没有安装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/article/how-to-install-mcrypt-for-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 Mint上17.1 Rebecca - 调用未定义的函数mcrypt_create_iv ...
通过在php.ini中添加以下行来解决
extension=mcrypt.so
之后一个
service apache2 restart
解决了......