我的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>