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