Apache 虚拟主机,禁止访问。使用 XAMPP OS X
Posted
技术标签:
【中文标题】Apache 虚拟主机,禁止访问。使用 XAMPP OS X【英文标题】:Apache Virtual Host, access forbidden. Using XAMPP OS X 【发布时间】:2016-08-05 00:16:41 【问题描述】:我在浏览器中转到“mytest.dev”,我收到以下错误:
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
mytest.dev
Apache/2.4.18 (Unix) OpenSSL/1.0.2g php/5.6.19 mod_perl/2.0.8-dev Perl/v5.16.3
在我的 /Applications/XAMPP/etc/httpd.conf 文件中,我有以下行未注释,我的指令看起来像这样:
Include etc/extra/httpd-vhosts.conf
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/trunk/mod/core.html#options
# for more information.
#
#Options Indexes FollowSymLinks
# XAMPP
Options Indexes FollowSymLinks ExecCGI Includes
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
# since XAMPP 1.4:
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
我的 /Applications/XAMPP/etc/extra/httpd-vhosts.conf 我的虚拟主机如下所示:
<VirtualHost *:80>
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/myTest"
ServerName mytest.dev
</VirtualHost>
我的 /etc/hosts 文件中有这个:
127.0.0.1 mytest.dev
但是,上面的行是在根目录 /etc 而不是 /Applications/XAMPP/etc。我的 /Xampp/etc 目录中没有 hosts 文件。
最后,因为我在指令中的 DocumentRoot 是这样的:“/Applications/XAMPP/xamppfiles/htdocs/myTest” 我有一个 index.php 文件,其中包含一个 hello world 脚本,在 myTest 目录中:
...html stuff...
<?php echo '<p>Hello World</p>'; ?>
... html stuff...
我在错误日志中没有得到任何与我的问题密切相关的内容。我查看了 access_log、error_log 和 php_error_log,但找不到任何类似于我对 mytest.dev 的请求的内容
我还使用此命令更改了 htdocs 的权限:
sudo chmod 644 /Applications/XAMPP/xamppfiles/htdocs/
【问题讨论】:
你能打mytest.dev/index.php
吗?
不,我无法收到相同的消息,但我认为我制造了一个问题,很可能是 sudo chmod 644 /Applications/XAMPP/xamppfiles/htdocs/ 现在我什至不能cd 进入我的 htdocs 目录.. 我也遇到了访问 localhost/rockpaperscissors 的问题(另一个放在我的 htdocs 中的应用程序,它在深夜运行良好)
【参考方案1】:
所有来自根目录的目录都必须是可执行的,您或 Web 服务器才能在读取它们之前遍历它们。以下命令应设置正确的权限:
sudo chmod +X /Applications/XAMPP/xamppfiles/htdocs
sudo chmod +X /Applications/XAMPP/xamppfiles
sudo chmod +X /Applications/XAMPP
sudo chmod +X /Applications
sudo chmod +X /
然后确保您的网络文件是可读和可执行的
sudo chmod -R +Xr /Applications/XAMPP/xamppfiles/htdocs/myTest
【讨论】:
以上是关于Apache 虚拟主机,禁止访问。使用 XAMPP OS X的主要内容,如果未能解决你的问题,请参考以下文章
使用 xampp 和 ngrok 访问本地虚拟主机时禁止访问