내 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를 다시 시작해 보았습니다.
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>
그런 다음 아파치 서비스를 다시 시작합니다.
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의 마지막 부분은 0과 마스크 "/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>