为什么我无法访问 phpmyadmin?

为什么我无法访问 phpmyadmin?

我的phpmyadmin.conf文件如下所示:

#
#  Web application to manage MySQL
#

<Directory "/usr/share/phpmyadmin">
  Order Deny,Allow
  Allow from 192.168.0.2
  Allow from 192.168.0.219
</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

我也做了更改后重新启动了 apache 服务。我使用以下命令尝试重新启动 apache:

sudo systemctl restart httpd.service

sudo apachectl restart

我正在使用的服务器正在运行 CentOS,并且托管在同一 LAN 上,并且我的本地 IP 列在“允许”下。导航到http://serverip/phpmyadmin以下结果:

Forbidden

You don't have permission to access /phpmyadmin on this server.

信息。有任何想法吗?我遵循了告诉我这样做的指南,但它似乎不起作用。

编辑:此消息显示在我的 httpd 中error_log

AH01630: client denied by server configuration: /usr/share/phpmyadmin

但我在 .config 中找不到配置文件/usr/share/phpmyadmin

答案1

警告:下面的 ( Require all granted) 允许从任何 ip 进行访问。

我必须将其添加到我的/etc/httpd/conf/httpd.conf文件中:

<Directory "/usr/share/phpmyadmin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

然后重启apache服务:

sudo systemctl restart httpd.service

我还读到 selinux 可能会导致此问题,因此您可以通过将 selinux 置于宽容模式来检查这是否会导致问题:

sudo setenforce 0
getenforce

让 selinux 退出宽容模式:

sudo setenforce 1
getenforce

检查/usr/share/phpmyadmin目录的权限以确保它们设置为 0755 之类的值也是一个好主意。

答案2

在日志中的错误消息之前,它将包含客户端 IP 地址。

[client 10.0.2.2:52570] AH01630: client denied by server configuration: /usr/share/phpMyAdmin

然后您可以在 conf 文件的规则中使用它(这是 Centos 7 的位置)。

sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

并进行编辑,使其看起来类似于以下内容。 IP 的最后一部分被替换为零和掩码“/15”,以允许子网 10.0.2.x 上的任何人进行访问。

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

相关内容