安装php7.2-mcrypt的问题

时间:2022-09-19 07:45:32

As I'm trying to load mcrypt extension module from PHP 7.2.X version.
So I tried to make use of PECL library that is compatible to the current version of my PHP, in order to get installed and followed this link: Installing mcrypt on PHP 7.2 during installation!

因为我正在尝试从PHP 7.2.X版本加载mcrypt扩展模块。所以我尝试使用与我当前版本的PHP兼容的PECL库,以便安装并遵循以下链接:在安装过程中在PHP 7.2上安装mcrypt!

These below are the result's obtained after executing certain commands on the terminal.

以下是在终端上执行某些命令后获得的结果。

root@YYY:/var/www/html/orocrm# apt install php-pear
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  php-pear
0 upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 285 kB of archives.
After this operation, 2,107 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php-pear all 1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1 [285 kB]
Fetched 285 kB in 1s (230 kB/s)   
Selecting previously unselected package php-pear.
(Reading database ... 215503 files and directories currently installed.)
Preparing to unpack .../php-pear_1%3a1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1_all.deb ...
Unpacking php-pear (1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up php-pear (1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1) ...

YYY@YYY:/var/www/html/orocrm$ sudo apt-get -y install gcc make autoconf libc-dev pkg-config
[sudo] password for YYY: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libc6-dev' instead of 'libc-dev'
gcc is already the newest version (4:5.3.1-1ubuntu1).
make is already the newest version (4.1-6).
pkg-config is already the newest version (0.29.1-0ubuntu1).
libc6-dev is already the newest version (2.23-0ubuntu9).
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'sudo apt autoremove' to remove it.
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc libtool
The following NEW packages will be installed:
  autoconf automake autotools-dev libsigsegv2 m4
0 upgraded, 5 newly installed, 0 to remove and 14 not upgraded.
Need to get 1,079 kB of archives.
After this operation, 3,998 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 libsigsegv2 amd64 2.10-4 [14.1 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 m4 amd64 1.4.17-5 [195 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 autoconf all 2.69-9 [321 kB]
Get:4 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 autotools-dev all 20150820.1 [39.8 kB]
Get:5 http://in.archive.ubuntu.com/ubuntu xenial/main amd64 automake all 1:1.15-4ubuntu1 [510 kB]
Fetched 1,079 kB in 2s (447 kB/s) 
Selecting previously unselected package libsigsegv2:amd64.
(Reading database ... 215198 files and directories currently installed.)
Preparing to unpack .../libsigsegv2_2.10-4_amd64.deb ...
Unpacking libsigsegv2:amd64 (2.10-4) ...
Selecting previously unselected package m4.
Preparing to unpack .../archives/m4_1.4.17-5_amd64.deb ...
Unpacking m4 (1.4.17-5) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../autoconf_2.69-9_all.deb ...
Unpacking autoconf (2.69-9) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../autotools-dev_20150820.1_all.deb ...
Unpacking autotools-dev (20150820.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../automake_1%3a1.15-4ubuntu1_all.deb ...
Unpacking automake (1:1.15-4ubuntu1) ...
Processing triggers for install-info (6.1.0.dfsg.1-5) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Setting up libsigsegv2:amd64 (2.10-4) ...
Setting up m4 (1.4.17-5) ...
Setting up autoconf (2.69-9) ...
Setting up autotools-dev (20150820.1) ...
Setting up automake (1:1.15-4ubuntu1) ...
update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu9) ...

YYY@YYY:/var/www/html/orocrm$ sudo apt-get -y install libmcrypt-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libmcrypt-dev
0 upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 83.7 kB of archives.
After this operation, 438 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/universe amd64 libmcrypt-dev amd64 2.5.8-3.3 [83.7 kB]
Fetched 83.7 kB in 0s (105 kB/s)       
Selecting previously unselected package libmcrypt-dev.
(Reading database ... 215484 files and directories currently installed.)
Preparing to unpack .../libmcrypt-dev_2.5.8-3.3_amd64.deb ...
Unpacking libmcrypt-dev (2.5.8-3.3) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libmcrypt-dev (2.5.8-3.3) ...

YYY@YYY:/var/www/html/orocrm$ sudo pecl7.2-sp install --nodeps mcrypt-snapshot
sudo: pecl7.2-sp: command not found

As I'm getting this type of Error as pecl7.2-sp: command not found

因为我没有找到这种类型的错误pecl7.2-sp:command

From the documentation section, it had been clearly stated that it had been deprecated and no longer will be available from the security point of view — since then, from the release version of PHP 7.2.X onward's.

从文档部分可以清楚地看出,它已被弃用,从安全的角度来看不再可用 - 从那时起,从PHP 7.2.X的发布版本开始。

But some of the project's need those dependencies, in order to carry out the required functionality as necessary. How do I need to solve the above issue?

但是一些项目需要这些依赖项,以便在必要时执行所需的功能。我如何解决上述问题?


UPDATE:

TL;DR:

I had a lot of response from the votes to the posted answer. The answers need to be triaged depending upon the OS Architecture level. Since I'm using the shared server for hosting, there are more than one projects residing over it & which are coded with the version of PHP 5.X.X, so I decided to downgrade to PHP 7.1.X that supports mcrypt extension by default in my Debian based OS.

从投票到答案的答案我得到了很多回应。需要根据OS体系结构级别对答案进行分类。由于我使用共享服务器进行托管,因此有多个项目驻留在它上面并且使用PHP 5.XX版本进行编码,因此我决定降级到默认情况下支持mcrypt扩展的PHP 7.1.X我的基于Debian的操作系统。

As I already mentioned in the link while Installing mcrypt Extension on PHP 7.2, by Server Pilot community. These peoples had told a newer version of pecl-7.2 is available to install mcrypt on PHP-7.2. Unfortunately, it ended with pecl7.2-sp: command not found from the executed commands which were put up. Later the website page got an update, so the commands over there doesn't match the commands that were tried while executing.

正如我在PHP 7.2上安装mcrypt Extension时的链接中所提到的,由Server Pilot社区提供。这些人已经告诉更新版本的pecl-7.2可以在PHP-7.2上安装mcrypt。不幸的是,它以pecl7.2-sp:命令结束,从执行的命令中找不到命令。后来网站页面得到了更新,因此那里的命令与执行时尝试的命令不匹配。

Finally, whichever might be the solutions fit's to your OS Architecture level, Just go for it!.

最后,无论哪种解决方案适合您的操作系统架构级别,只需去吧!

OR

If the below approaches didn't yield to solve the root cause.
Alternatively, you can go for PHP 7.1.X version which supports mcrypt extension by default

如果以下方法没有产生解决根本原因。或者,您可以使用默认支持mcrypt扩展的PHP 7.1.X版本

3 个解决方案

#1


26  

I followed below steps to install mcrypt for PHP7.2 using PECL.

我按照以下步骤使用PECL为PHP7.2安装mcrypt。

  1. Install PECL

apt-get install php-pecl

apt-get install php-pecl

  1. Before installing MCRYPT you must install libmcrypt
  2. 在安装MCRYPT之前,您必须安装libmcrypt

apt-get install libmcrypt-dev libreadline-dev

apt-get install libmcrypt-dev libreadline-dev

  1. Install MCRYPT 1.0.1 using PECL
  2. 使用PECL安装MCRYPT 1.0.1

pecl install mcrypt-1.0.1

pecl install mcrypt-1.0.1

  1. After the successful installation
  2. 安装成功后

You should add "extension=mcrypt.so" to php.ini

你应该在php.ini中添加“extension = mcrypt.so”

Please comment below if you need any assistance. :-)

如果您需要任何帮助,请在下面评论。 :-)

#2


17  

Mcrypt PECL extenstion

Mcrypt PECL扩展

 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 are shown the prompt

当您显示提示时

 libmcrypt prefix? [autodetect] :

Press [Enter] to autodetect.

按[Enter]进行自动检测。

After success installing mcrypt trought pecl, you should add mcrypt.so extension to php.ini.

安装mcrypt trought pecl成功后,你应该将mcrypt.so扩展名添加到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

Grab installing path and add to cli and apache2 php.ini configuration.

抓住安装路径并添加到cli和apache2 php.ini配置。

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 was installed

验证是否已安装扩展

Run 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

#3


10  

@praneeth-nidarshan has covered mostly all the steps, except some:

@ praneeth-nidarshan主要涵盖了所有步骤,除了一些:

  • Check if you have pear installed (or install):
  • 检查您是否安装了梨(或安装):

$ sudo apt-get install php-pear

$ sudo apt-get install php-pear

  • Install, if isn't already installed, php7.2-dev, in order to avoid the error:
  • 安装,如果尚未安装,php7.2-dev,以避免错误:

sh: phpize: not found

sh:phpize:找不到

ERROR: `phpize’ failed

错误:`phpize'失败了

$ sudo apt-get install php7.2-dev

$ sudo apt-get install php7.2-dev

  • Install mcrypt using pecl:
  • 使用pecl安装mcrypt:

$ sudo pecl install mcrypt-1.0.1

$ sudo pecl install mcrypt-1.0.1

  • Add the extention extension=mcrypt.so to your php.ini configuration file; if you don't know where it is, search with:
  • 将extention extension = mcrypt.so添加到php.ini配置文件中;如果您不知道它在哪里,请搜索:

$ sudo php -i | grep 'Configuration File'

$ sudo php -i | grep'配置文件'

#1


26  

I followed below steps to install mcrypt for PHP7.2 using PECL.

我按照以下步骤使用PECL为PHP7.2安装mcrypt。

  1. Install PECL

apt-get install php-pecl

apt-get install php-pecl

  1. Before installing MCRYPT you must install libmcrypt
  2. 在安装MCRYPT之前,您必须安装libmcrypt

apt-get install libmcrypt-dev libreadline-dev

apt-get install libmcrypt-dev libreadline-dev

  1. Install MCRYPT 1.0.1 using PECL
  2. 使用PECL安装MCRYPT 1.0.1

pecl install mcrypt-1.0.1

pecl install mcrypt-1.0.1

  1. After the successful installation
  2. 安装成功后

You should add "extension=mcrypt.so" to php.ini

你应该在php.ini中添加“extension = mcrypt.so”

Please comment below if you need any assistance. :-)

如果您需要任何帮助,请在下面评论。 :-)

#2


17  

Mcrypt PECL extenstion

Mcrypt PECL扩展

 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 are shown the prompt

当您显示提示时

 libmcrypt prefix? [autodetect] :

Press [Enter] to autodetect.

按[Enter]进行自动检测。

After success installing mcrypt trought pecl, you should add mcrypt.so extension to php.ini.

安装mcrypt trought pecl成功后,你应该将mcrypt.so扩展名添加到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

Grab installing path and add to cli and apache2 php.ini configuration.

抓住安装路径并添加到cli和apache2 php.ini配置。

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 was installed

验证是否已安装扩展

Run 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

#3


10  

@praneeth-nidarshan has covered mostly all the steps, except some:

@ praneeth-nidarshan主要涵盖了所有步骤,除了一些:

  • Check if you have pear installed (or install):
  • 检查您是否安装了梨(或安装):

$ sudo apt-get install php-pear

$ sudo apt-get install php-pear

  • Install, if isn't already installed, php7.2-dev, in order to avoid the error:
  • 安装,如果尚未安装,php7.2-dev,以避免错误:

sh: phpize: not found

sh:phpize:找不到

ERROR: `phpize’ failed

错误:`phpize'失败了

$ sudo apt-get install php7.2-dev

$ sudo apt-get install php7.2-dev

  • Install mcrypt using pecl:
  • 使用pecl安装mcrypt:

$ sudo pecl install mcrypt-1.0.1

$ sudo pecl install mcrypt-1.0.1

  • Add the extention extension=mcrypt.so to your php.ini configuration file; if you don't know where it is, search with:
  • 将extention extension = mcrypt.so添加到php.ini配置文件中;如果您不知道它在哪里,请搜索:

$ sudo php -i | grep 'Configuration File'

$ sudo php -i | grep'配置文件'