通过尝试让 adminer 在 archlinux 下运行,我遇到了这个问题。
当为管理员设置 apache 并使用 Firefox 或 Opera 调用 localhost/adminer 时,我收到代码 403(禁止访问)。在没有 apache 的情况下启动 adminer 时:
php -S localhost:8000 -t /usr/share/webapps/adminer/
使用 Firefox 调用 localhost/adminer 可以正常工作。 index.php 文件路径中的所有文件夹都具有读取和执行权限。仅存在一个具有读取权限“index.php”的文件。我的 ServerRoot“/srv/http/”的帐户相同,只是其中没有任何文件。
我的 apache 配置文件中一定有错误。
我的 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 服务器。 (并且服务器正在运行,否则代码将是 404 而不是 403。)
我究竟做错了什么?
答案1
如果您只是从该 Web 服务器为管理员提供服务,请更改 Apache 为页面提供服务的根目录,如下所示:
DocumentRoot "/usr/share/webapps/adminer"
然后重新启动Apache服务。
答案2
始终使用 HTTPS 协议访问管理员。管理员开发人员禁用了 HTTP 访问,但不知何故忘记了一些消息,例如:“伙计,使用 HTTPS!”,...而不是选择在没有给出原因的情况下安静地死去。