phpenmod mcrypt 和 phpenmod mbstring 返回错误

phpenmod mcrypt 和 phpenmod mbstring 返回错误

我使用 ubuntu16.04.1、Apache2、MySQL 和 PHP 7.0.8.1 的最小服务器环境。我通过以下方式安装 AMP apt-get install lamp-server^:。

我还通过以下方式手动安装了 PHPmyadmin:

cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.zip
find ./ -type f -name '*phpMyAdmin*.zip' -exec unzip {} \; # We can also do unzip \*phpMyAdmin*.zip ...
find ./ -type d -name 'phpMyAdmin-*' -exec mv {} phpmyadmin \;

PHPmyadmin 已引导,但要充分使用其功能,据我所知,我还需要执行以下操作:

phpenmod mcrypt
phpenmod mbstring

然而这些分别返回错误:

Module mcrypt ini file doesn't exist under /etc/php/7.0/mods-available

Module mbstring ini file doesn't exist under /etc/php/7.0/mods-available

我以前从未遇到过这些错误。这些模块对于当前版本中的 PHPmyadmin 是否是多余的,或者当未通过 安装时是否是多余的apt-get install

答案1

首先安装它们:

sudo apt install php7.0-mcrypt && sudo apt install php7.0-mbstring

然后使用以下命令启用它们:

sudo a2enmod mcrypt
sudo a2enmod mbstring

更新

根据广泛的研究,我相信漏洞存在阻止你php 命令行很好php 加密

来源:

无法在 Ubuntu 13.10(Nginx,PHP-FPM)中使用 PHP 扩展 Mcrypt

php 在 ubuntu 13.10 上运行不佳,并且 phpmyadmin 中缺少 mcrypt

确认mcrypt已启用在 Apache 中按照以下步骤操作:

  1. 创建一个php名为的文件,info.php并将以下代码放入其中:

    <?php echo phpinfo(); ?>
    
  2. 将文件放入/var/www/html或您的服务器根目录

  3. 从浏览器访问它IP/info.php,或者localhost/info.php

  4. 看看外面,你会发现mcrypt and mbstring已经启用了

    在此处输入图片描述

    如您所见,它在 apache 中启用,但无法从 php CLI 访问,因此出现错误消息。

  5. 确认其工作[因为我也遇到了这个问题]我做了以下事情:

    • 已安装prestashop应用程序,并且由于其中一个要求prestashop 的php 加密mcrypt如果没有启用,它会抛出一个错误并拒绝继续阿帕奇

简单来说,根据您的Apache 信息页面显示这些模块启用后即可。所见的错误是由于php 命令行有问题加密这已被指出是一个错误。在早期版本中看到php但现在存在于PHP7

答案2

我对上述解决方案有疑问,但发现了这一点:

https://www.techrepublic.com/article/how-to-install-mcrypt-for-php-7-2/

本质上,自己构建:

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

一旦安装了依赖项,您就可以使用以下命令安装 mcrypt:

sudo pecl install mcrypt-1.0.1

从那里我需要添加:

 /etc/php/7.2/mods-available/mcrypt.ini

看起来像这样:

; configuration for php mcrypt module
; priority=20
extension=mcrypt.so

然后

sudo phpenmod mcrypt
sudo systemctl restart apache2.service

答案3

如果两者都安装了,但错误仍然存​​在,请尝试在mods-available

具体操作如下:

sudo ln -s /etc/php7/conf.d/mcrypt.ini /etc/php/7.0/mods-available/mcrypt.ini

sudo ln -s /etc/php7/conf.d/mbstring.ini /etc/php/7.0/mods-available/mbstring.ini

相关内容