我目前正在 Fedora 29 上运行 Apache Web 服务器,并且面临目录访问问题。
我可以很好地运行位于 中的 php 和 HTML 文件…/www/html/applications/views
,但当我尝试运行位于…/www/html/applications/controllers
.
我尝试将后一个目录及其内容的权限与前一个目录的权限及其内容进行匹配,但无济于事。我尝试将所有权切换到当前用户并再次修改权限,但仍然遇到此错误。
另外,我检查了 apache 服务器错误日志,似乎没有与此相关的内容(从它显示的最后一个错误日期为 5 月 22 日而得出的结论是,最后一次重新运行 php 脚本是在 5 月 25 日,请纠正我如果我错了)。以下是最新的 3 条错误信息:
[Wed May 22 22:40:07.338339 2019] [lbmethod_heartbeat:notice] [pid 17890:tid 139756349729024] AH02282: No slotmem from mod_heartmonitor
[Wed May 22 22:40:07.350863 2019] [mpm_event:notice] [pid 17890:tid 139756349729024] AH00489: Apache/2.4.39 (Fedora) OpenSSL/1.1.1b mod_perl/2.0.10 Perl/v5.28.2 configured -- resuming normal operations
[Wed May 22 22:40:07.350906 2019] [core:notice] [pid 17890:tid 139756349729024] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
另外,下面给出的是该文件的内容.htaccess
:
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
知道发生了什么事以及如何解决它吗?
答案1
这Deny from all
是 Apache 2.2 语法,也是Require all denied
Apache 2.4 语法。
https://httpd.apache.org/docs/2.4/upgrading.html#access
在此示例中,没有进行身份验证,并且所有请求都被拒绝。
2.2 配置:
订单拒绝,允许
全部拒绝2.4 配置:
要求全部拒绝
https://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#deny
句法:
Deny from all|host|env=[!]env-variable [host|env=[!]env-variable] ...
该指令允许根据主机名、IP 地址或环境变量限制对服务器的访问。该指令的参数
Deny
与该指令的参数相同Allow
。
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
Require all denied
无条件拒绝访问。
由于您没有说它位于哪里,.htaccess
我无法说出为什么…/www/html/applications/views
有效和…/www/html/applications/controllers
无效。但你的内容.htaccess
说所有访问均被拒绝适用于阿帕奇 2.2/2.4。