所以我使用的是MacOS Catalina ,我的Apache环境运行得很好,直到我决定将我的文档根目录移动到iCloud驱动器,以保持备份。
之前我的文档根是:
/users/admin/www
现在是了
/users/admin/Library/Mobile Documents/com~apple~CloudDocs/www
我相应地编辑了httpd.conf:
DocumentRoot "/users/admin/Library/Mobile Documents/com~apple~CloudDocs/www"
<Directory "/users/admin/Library/Mobile Documents/com~apple~CloudDocs/www">
Options FollowSymLinks Multiviews SymLinksIfOwnerMatch
MultiviewsMatch Any
AllowOverride All
Require all granted
</Directory>
<Directory "/users/admin/Library/Mobile Documents/com~apple~CloudDocs/www/myfolder">
Options +FollowSymLinks +Multiviews +SymLinksIfOwnerMatch
MultiviewsMatch Any
AllowOverride All
Allow from All
Require all granted
</Directory>
重新启动Apache,重新启动机器,但现在我可以访问127.0.0.1,除了一个特定的文件夹(让我们称之为www/myfolder)。当我尝试访问127.0.0.1/myfolder时,我得到以下错误:
Forbidden
You don't have permission to access / on this server.
检查Apache日志文件,这是我得到的错误:
[Thu Oct 24 14:00:24.830700 2019] [access_compat:error] [pid 61703] [client 127.0.0.1:57804] AH01797: client denied by server configuration: /users/admin/Library/Mobile Documents/com~apple~CloudDocs/www/myfolder/public_html/
我在这里错过了什么?请帮助,我需要工作:D
1条答案
按热度按时间gajydyqb1#
我看到的第一件事是你在目录块中使用了Apache 2.4风格的语法,但是在你的错误日志中,抛出错误的模块是
access_compat
。根据Apache文档:The directives provided by mod_access_compat have been deprecated
by mod_authz_host。将Order、Allow或Deny等旧指令与Require等新指令混合在一起在技术上是可行的,但不建议使用。创建此模块是为了支持仅包含旧指令的配置,以促进2.4升级下一条线索是错误代码:
AH01797
。这是由server configuration issue引起的:客户端被服务器配置拒绝
此错误意味着Apache配置拒绝访问文件系统上的目录。
我在这里假设您实际上使用的是2.4,并且错误地启用了
access_compat
。再次查看配置文件,找到加载
mod_access_compat
的LoadModule
指令,并将其注解掉。它可能在httpd.conf
文件中,但有许多不同的组织和配置Apache安装的风格,因此它可能在其他地方。如果您有Debian风格的安装,你需要删除符号链接/etc/apache2/mods_enabled/mod_access_compat
。Grep -R access_compat *
可能会有帮助。编辑2更多观察结果:
1.在第二个
directory
节中,有再次禁用
access_compat
,并在重新启动Apache之前删除Allow from all
行。1.我不认为第二个
directory
节是必要的,你可以删除整个块,然后重启服务器,这样就可以了。首先尝试(1)禁用
access_compat
并从httpd.conf
文件中删除Allow
指令,然后使用apache2ctl -k graceful
重新启动Apache。如果不起作用,请注解掉整个第二节directory
并重新启动。我有50%的把握可以解决这个问题,如果不能,我需要看一下你的整个httpd.conf文件,然后才能进一步解决问题。