如何在PHP 7.3.3 Ubuntu上安装mcrypt

时间:2019-04-14 17:22:09

标签: php mcrypt pecl

我试图遵循: PHP Warning: PHP Startup: Unable to load dynamic library 'mcrypt.so'

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

我得到:

pecl/mcrypt requires PHP (version >= 7.2.0, version <= 7.3.0, excluded versions: 7.3.0), installed version is 7.3.3-1+ubuntu14.04.1+deb.sury.org+1
No valid packages found
install failed

我使用需要此的prestashop

5 个答案:

答案 0 :(得分:5)

如果有人正在使用带有php7.3.10的AWS bitnami安装,则以下是具有适当文件路径的布局(下面列出了引用)

检查php版本

$ php -version

安装mcrypt扩展名

$ sudo apt-get -y install gcc make autoconf libc-dev pkg-config

$ sudo apt-get -y install libmcrypt-dev

如果php版本> 7.3.0

$ sudo pecl install mcrypt-1.0.2

如果php版本<= 7.3.0

$ sudo pecl install mcrypt-1.0.1

显示提示时(按[Enter]自动检测)

> libmcrypt prefix? [autodetect] :

在php.ini中启用'mcrypt'->检查'mcrypt'是否已在php.ini中,也许只需要取消注释

$ more /opt/bitnami/php/etc/php.ini | grep mcrypt

;extension=mcrypt.so

在php.ini中添加或取消注释'extension = mcrypt.so'

$ emacs /opt/bitnami/php/etc/php.ini

参考...

https://lukasmestan.com/install-mcrypt-extension-in-php7-2/

How to install mcrypt on PHP 7.3.3 ubuntu

https://stackoverflow.com/a/55678046/2298002

答案 1 :(得分:2)

我在 PHP 版本:7.4.3 Ubuntu 版本:20.04.1 LTS 和 nginx 中解决了同样的问题

sudo apt-get install php-pear php7.4-dev
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libmcrypt-dev

你可以根据php版本选择你的mcrypt版本Read

  sudo pecl install mcrypt-1.0.4

当你看到提示时

libmcrypt prefix? [autodetect] :

按 [Enter] 自动检测。

输出将是这样的。

Build process completed successfully
Installing '/usr/lib/php/20190902/mcrypt.so'
install ok: channel://pecl.php.net/mcrypt-1.0.4
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

使用pecl安装mcrypt成功后,应该在php.ini中添加extension=/usr/lib/php/20190902/mcrypt.so扩展名。

我在波纹管文件中添加了 extension=/usr/lib/php/20190902/mcrypt.so

  1. /etc/php/7.4/fpm/php.ini
  2. /etc/php/7.4/cli/php.ini

重启你的nginx,因为我正在使用nginx

systemctl restart nginx

你也可以重启php-fpm

sudo service php7.4-fpm restart

最后如何验证是否安装了 mycrpt(注意关闭终端并再次打开)

 php -m | grep mcrypt

答案 2 :(得分:1)

您必须安装版本1.0.2。

错误消息清楚地告诉您1.0.1仅支持PHP 7.2,而不支持7.3。

全部记录为on the official pecl/mcrypt page

  

发布1.0.2:

     

PHP版本:PHP 7.4.0或更早版本

     

PHP版本:PHP 7.2.0或更高版本

     

PEAR软件包:PEAR 1.4.0或更高版本

     

发布1.0.1:

     

PHP版本:PHP 7.3.0或更旧版本

     

PHP版本:PHP 7.2.0或更高版本

     

PEAR软件包:PEAR 1.4.0或更高版本

答案 3 :(得分:0)

使用它,可以在php-7.3中完美运行:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config 须藤apt-get -y install libmcrypt-dev sudo pecl安装mcrypt-1.0.1

自动检测:命中输入

sudo bash -c“ echo extension = / usr / lib / php / [在您电脑中的文件夹] /mcrypt.so> /etc/php/7.3/cli/conf.d/mcrypt.ini”

sudo bash -c“ echo extension = / usr / lib / php / [在您电脑中的文件夹] /mcrypt.so> /etc/php/7.3/apache2/conf.d/mcrypt.ini”

php -i | grep mcrypt

答案 4 :(得分:-5)

我通过启用php5解决了这个问题:

a2dismod php7.0

a2enmod php5

就像评论所建议的那样-不推荐

对于使用prestashop的用户,请参阅以下修复程序:

https://github.com/PrestaShop/PrestaShop/blob/80ecf62a30fbd2521007ad3eee441d055aa49c36/classes/Rijndael.php