Ubuntu Server 18.04 LTS 中缺少 php-mcrypt 包

And*_*tti 26 server php package-management apt apache2

php-mcryptUbuntu Server 18.04 LTS 中是否缺少该软件包?

apt install php-mcrypt
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php-mcrypt is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php-mcrypt' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

Eps*_*pie 40

Mcrypt 已在 PHP 7.2 中弃用,因此默认情况下不可用。

您仍然可以使用 pecl 安装 mcrypt 扩展。这些说明适用于apacheWeb 服务器。

# Install prerequisites
sudo apt-get install php-dev libmcrypt-dev gcc make autoconf libc-dev pkg-config

# Compile mcrypt extension
sudo pecl install mcrypt-1.0.1
# Just press enter when it asks about libmcrypt prefix

# Enable extension for apache
echo "extension=mcrypt.so" | sudo tee -a /etc/php/7.2/apache2/conf.d/mcrypt.ini

# Restart apache
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

那应该能让你继续前进。

从长远来看,您可能想要替换mcrypt,它已被弃用是有原因的。


小智 9

我做了以下工作来让这个工作......

sudo add-apt-repository ppa:ondrej/php
sudo apt-get install php7.1-mcrypt
Run Code Online (Sandbox Code Playgroud)

如果您运行的是 php5.6 或 7.0,则可以使用以下命令

sudo apt-get install php5.6-mcrypt
sudo apt-get install php7.0-mcrypt
Run Code Online (Sandbox Code Playgroud)


小智 5

首先检查mcrypt PHP模块是否存在:

$ php -m | grep mcrypt
Run Code Online (Sandbox Code Playgroud)

要安装 mcrypt PHP 模块,我们首先需要满足以下先决条件:

sudo apt install php-dev libmcrypt-dev php-pear
Run Code Online (Sandbox Code Playgroud)

现在我们准备在我们的 Ubuntu 18.04 系统上安装 mcrypt PHP 模块:

$ sudo pecl channel-update pecl.php.net
$ sudo pecl install mcrypt-1.0.1
Run Code Online (Sandbox Code Playgroud)

打开 /etc/php/7.2/cli/php.ini 文件并插入:

extension=mcrypt.so
Run Code Online (Sandbox Code Playgroud)

全部完成。成功后,检查 mcrypt PHP 模块是否存在应该会产生以下输出:

$ php -m | grep mcrypt
mcrypt
Run Code Online (Sandbox Code Playgroud)