题
注意:的库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.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
有关视窗
;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