mcrypt is an important encryption support extension library in PHP. This library is not enabled by default in Linux environment. In the window environment, PHP>=5.3, the mcrypt extension is enabled by default. The mcrypt extension is an interface to the mcrypt encryption library. This extension is useful for allowing PHP code that uses mcrypt to run on PHP 7.2.
#The main problem with the mcrypt extension is that it is based on libmcrypt and has not been developed since 2007. Therefore, even though libmcrypt is still in use, the library's security issues have become a focus for many system administrators due to a lack of proper development and maintenance.
Due to the end of mcrypt extension development, the extension was also removed from PHP 7.2 and moved to an unofficial PECL repository. However, you can still find the mcrypt extension in PHP 5.4 to PHP 7.1. PHP 7.2 has been released, but it does not include the mcrypt extension. As of PHP 7.2, PHP uses libsodium as the encryption library.
To install the mcrypt extension on PHP 7.2, run the following command as the root user of the server:
Verify php and pecl versions
php -v pecl version
If your php is not 7.2, then use /usr/bin/php7.2 instead of php command.
Install mcrypt extension
Mcrypt PECL extension
sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo apt-get -y install libmcrypt-dev sudo pecl install mcrypt-1.0.1
When you see the prompt
libmcrypt prefix? [autodetect] :
Press [Enter] to automatically detect.
After successfully installing mcrypt trought pecl, you should add the mcrypt.so extension to php.ini.
The output will look like this:
... Build process completed successfully Installing '/usr/lib/php/20170718/mcrypt.so' ----> this is our path to mcrypt extension lib install ok: channel://pecl.php.net/mcrypt-1.0.1 configuration option "php_ini" is not set to php.ini location You should add "extension=mcrypt.so" to php.ini
Get the installation path and add it to the cli and apache2 php.ini configuration.
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini" sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"
Verify that the extension is installed
Run the command:
php -i | grep "mcrypt"
The output will look like this:
/etc/php/7.2/cli/conf.d/mcrypt.ini Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.* mcrypt mcrypt support => enabled mcrypt_filter support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value
FAQ
Q: I see the error message: ERROR: 'phpize' failed
Answer: You can install php7.2-dev apt-get install php7.2-dev
Q: What is the solution for installing PHP 7.1 with highet settings on MacOS/OSX?
Answer: You can use macports, and then you can install sudo port install php71-mcrypt
Related recommendations: "PHP Tutorial"
This article This article is about how to install the mcrypt extension in php7.2/php7.3. I hope it will be helpful to friends in need!
The above is the detailed content of How to install mcrypt extension in php7.2/php7.3?. For more information, please follow other related articles on the PHP Chinese website!