나는 adminer를 Archlinux에서 실행시키려고 하다가 이 문제에 부딪혔습니다.
관리자용 Apache를 설정하고 Firefox 또는 Opera를 사용하여 localhost/adminer를 호출하면 코드 403(금지됨)이 표시됩니다. 아파치 없이 관리자를 시작할 때:
php -S localhost:8000 -t /usr/share/webapps/adminer/
Firefox를 사용하여 localhost/adminer를 호출하면 정상적으로 작동합니다. index.php 파일 경로의 모든 폴더에는 읽기 및 실행 권한이 있습니다. 읽기 권한이 있는 "index.php" 파일은 하나만 있습니다. 내 ServerRoot "/srv/http/"에는 동일한 계정이 있지만 그 안에 파일이 없습니다.
아파치 구성 파일에 뭔가 문제가 있는 것 같습니다.
내 Apache 구성 파일의 관련 부분은 다음과 같습니다.
/etc/httpd/conf/httpd.conf:
ServerRoot "/etc/httpd"
Listen 80
...
User http
Group http
ServerAdmin [email protected]
ServerName localhost:80
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/srv/http"
<Directory "/srv/http">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
...
Include conf/extra/httpd-adminer.conf
...
/etc/httpd/conf/extra/httpd-adminer.conf:
# vim: ft=apache
Alias /adminer "/usr/share/webapps/adminer"
<Directory "/usr/share/webapps/adminer">
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
"http-adminer.conf"에서 별칭 줄 없이 심볼릭 링크를 사용해 보았으나 성공하지 못했습니다. 예, Apache 서버를 다시 시작했는지 확인했습니다. (그리고 서버가 실행 중입니다. 그렇지 않으면 코드는 403이 아닌 404가 됩니다.)
내가 뭘 잘못했나요?
답변1
이 웹 서버에서 관리자에게만 서비스를 제공하는 경우 Apache가 페이지를 제공하는 루트 디렉터리를 다음과 같이 변경합니다.
DocumentRoot "/usr/share/webapps/adminer"
그런 다음 Apache 서비스를 다시 시작하십시오.
답변2
관리자에 액세스하려면 항상 HTTPS 프로토콜을 사용하십시오. 관리자 개발자는 HTTP 액세스를 비활성화했지만 이유를 밝히지 않고 조용히 죽는 대신 "HTTPS를 사용하세요!"와 같은 메시지를 잊어버렸습니다.