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

Posted

技术标签:

【中文标题】phpmyadmin 403 php 在 CentOS 7 Apache 上从 7.4 -> 7.3 降级后被禁止【英文标题】:phpmyadmin 403 Forbidden after php downgrade from 7.4 -> 7.3 on CentOS 7 Apache 【发布时间】:2021-06-11 04:43:53 【问题描述】:

我已经获得了 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-*

我只运行了一次,后来发现我安装了其他 PHP 7.4 扩展并没有删除它们。 比我安装的php73(不知道是哪个教程)

这些是我当前使用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】:

您的安装似乎一团糟

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/您的网络服务器没有任何 PHP 引擎

您需要在 CenOS 7 或 php-fpm 上默认使用 mod_php(“php”包)

yum install mod_php

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

3/旧的phpMyAdmin

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

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

yum --enablerepo=remi install phpMyAdmin

【讨论】:

感谢您非常准确的教程和解释。请更正yun install PHP -> yum install php 中的拼写错误。我按照你的建议做了。安装 phpmyadmin 后,我的 conf 文件不同,无法从浏览器访问 phpmyadmin(再次为 403),所以我只是从以前添加的,它看起来像这样: 我在最后的问题中添加了新的配置

以上是关于phpmyadmin 403 php 在 CentOS 7 Apache 上从 7.4 -> 7.3 降级后被禁止的主要内容,如果未能解决你的问题,请参考以下文章

在 centOS 上运行 phpmyadmin - 禁止错误 (403)

PhpMyAdmin 错误:403 被禁止

无法访问 phpmyadmin(403 权限错误)

Centos 7 phpmyadmin 403 禁止

ubuntu 12.04 上 phpmyadmin 的 403 错误

Xampp 上的 phpmyadmin 突然给出 403