phpmyadmin 403 在 CentOS 7 Apache 上从 7.4 -> 7.3 降级后 php 被禁止

phpmyadmin 403 Forbidden after php downgrade from 7.4 -> 7.3 on CentOS 7 Apache

我获得了VPS并且用LAMP获得了。

CentOS Linux release 7.9.2009 (Core)
Server version: Apache/2.4.6 (CentOS)
PHP 7.4.16 (cli) (built: Mar  2 2021 10:35:17) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

我安装了 phpmyadmin 并配置了它的 phpmyadmin.conf 文件以使其可以从浏览器访问并且它正在运行。

后来我将 PHP 5.x 升级到 7.4。本教程之后的版本: https://computingforgeeks.com/how-to-install-php-7-4-on-centos-7/

升级后我遇到脚本内存问题,所以我尝试“降级”到 PHP 7.3。 首先,我使用以下命令卸载了当前版本的 PHP: yum remove php-7-*

这些是我当前的包 rpm -qa |grep php:

php-json-7.4.16-1.el7.remi.x86_64
php-gd-7.4.16-1.el7.remi.x86_64
php-bcmath-7.4.16-1.el7.remi.x86_64
php73-php-cli-7.3.27-1.el7.remi.x86_64
php73-2.0-1.el7.remi.x86_64
php-fedora-autoloader-1.0.1-2.el7.noarch
php-common-7.4.16-1.el7.remi.x86_64
php-pdo-7.4.16-1.el7.remi.x86_64
php-sodium-7.4.16-1.el7.remi.x86_64
oniguruma5php-6.9.6-1.el7.remi.x86_64
php-pecl-zip-1.19.2-1.el7.remi.7.4.x86_64
php-mbstring-7.4.16-1.el7.remi.x86_64
php-tidy-7.4.16-1.el7.remi.x86_64
php-mysqlnd-7.4.16-1.el7.remi.x86_64
php-xml-7.4.16-1.el7.remi.x86_64
php73-runtime-2.0-1.el7.remi.x86_64
php73-php-common-7.3.27-1.el7.remi.x86_64
php73-php-xml-7.3.27-1.el7.remi.x86_64
php73-php-pear-1.10.12-5.el7.remi.noarch
php73-php-mbstring-7.3.27-1.el7.remi.x86_64
php-tcpdf-6.2.26-1.el7.noarch
phpMyAdmin-4.4.15.10-4.el7.noarch
php-cli-7.4.16-1.el7.remi.x86_64
php-process-7.4.16-1.el7.remi.x86_64
php73-php-json-7.3.27-1.el7.remi.x86_64
php73-php-process-7.3.27-1.el7.remi.x86_64
php-php-gettext-1.0.12-1.el7.noarch
php-tcpdf-dejavu-sans-fonts-6.2.26-1.el7.noarch

这是我在 运行 yum list installed | grep -i php:

时得到的
oniguruma5php.x86_64                6.9.6-1.el7.remi                @remi-safe
php-bcmath.x86_64                   7.4.16-1.el7.remi               @remi-php74
php-cli.x86_64                      7.4.16-1.el7.remi               @remi-php74
php-common.x86_64                   7.4.16-1.el7.remi               @remi-php74
php-fedora-autoloader.noarch        1.0.1-2.el7                     @epel
php-gd.x86_64                       7.4.16-1.el7.remi               @remi-php74
php-json.x86_64                     7.4.16-1.el7.remi               @remi-php74
php-mbstring.x86_64                 7.4.16-1.el7.remi               @remi-php74
php-mysqlnd.x86_64                  7.4.16-1.el7.remi               @remi-php74
php-pdo.x86_64                      7.4.16-1.el7.remi               @remi-php74
php-pecl-zip.x86_64                 1.19.2-1.el7.remi.7.4           @remi-php74
php-php-gettext.noarch              1.0.12-1.el7                    @epel
php-process.x86_64                  7.4.16-1.el7.remi               @remi-php74
php-sodium.x86_64                   7.4.16-1.el7.remi               @remi-php74
php-tcpdf.noarch                    6.2.26-1.el7                    @epel
php-tcpdf-dejavu-sans-fonts.noarch  6.2.26-1.el7                    @epel
php-tidy.x86_64                     7.4.16-1.el7.remi               @remi-php74
php-xml.x86_64                      7.4.16-1.el7.remi               @remi-php74
php73.x86_64                        2.0-1.el7.remi                  @remi-safe
php73-php-cli.x86_64                7.3.27-1.el7.remi               @remi-safe
php73-php-common.x86_64             7.3.27-1.el7.remi               @remi-safe
php73-php-json.x86_64               7.3.27-1.el7.remi               @remi-safe
php73-php-mbstring.x86_64           7.3.27-1.el7.remi               @remi-safe
php73-php-pear.noarch               1:1.10.12-5.el7.remi            @remi-safe
php73-php-process.x86_64            7.3.27-1.el7.remi               @remi-safe
php73-php-xml.x86_64                7.3.27-1.el7.remi               @remi-safe
php73-runtime.x86_64                2.0-1.el7.remi                  @remi-safe
phpMyAdmin.noarch                   4.4.15.10-4.el7                 @epel

我的 phpmyadmin.conf 看起来像这样(工作时):

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
      # Apache 2.4
      <RequireAny>
       Require ip 62.75.146.76
       Require ip ::1
       Require all granted
      </RequireAny>
    </IfModule>
    <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from All
     Allow from ::1
   </IfModule>
</Directory>

然后我把它改成了这个(但它仍然不起作用):

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Allow from All
   </IfModule>
</Directory>

我搜索到的是 403 Forbidden 可能是由于 php 安装错误,所以我想删除所有 php 7.3 和 7.4 软件包并安装干净的 php 7.3 .与普通包。这是正确的方法吗?如果是,请帮助命令正确安装 php 7.3


新安装后我的phpMyAdmin.conf文件:

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   <IfModule mod_authz_core.c>
      # Apache 2.4
      <RequireAny>
       Require ip 62.75.146.76
       Require ip ::1
       Require all granted
      </RequireAny>
    </IfModule>
    <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from All
     Allow from ::1
   </IfModule>
#   Require local
</Directory>

你的安装看起来很乱

1/ 2 PHP 堆栈

您同时安装了 PHP 7.4(php-* 软件包)和 7.3(php73-php-* 软件包)

阅读:Difference between php-* and php##-php-* packages ?

我建议你删除所有内容

yum remove php\*

并在 Wizard instructions 之后开始全新安装。

yum-config-manager --disable 'remi-php*'
yum-config-manager --enable   remi-php73
yun install php

2/ 您的 Web 服务器没有任何 PHP 引擎

你需要在 CenOS 7 或 php-fpm

上默认使用 mod_php(“php”包)
yum install mod_php

注意:php-fpm 现在在 CentOS 8 上默认使用

3/旧phpMyAdmin

您使用的是来自 EPEL 的旧 phpMyAdmin v4,它适用于 CentOS 7 默认提供的旧 PHP 5.4 版,但与最近的 PHP 不兼容版本

您应该使用新的 phpMyAdmin v5(来自“remi”存储库)

yum --enablerepo=remi install phpMyAdmin