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-*
- 我运行这只有一次,后来我发现我已经安装了其他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/ 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
我获得了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/ 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