在迁移到我们的生产服务器之前,我尝试安装最新版本的 XAMPP 作为一个简单的测试平台来演示 PHP。为了方便起见,我设置了几个虚拟主机,但它们总是会抛出 403 错误。
我已经以递归方式 chown 了目录,我已经在文件中声明了域hosts
,我已经检查了 755/777 权限,我已经调整了 apache 用户和组,我已经检查了httpd -S
错误,我已经解析了服务器名称,我已经在我的声明中httpd.conf
包含了经常建议的代码,如下所示,以各种安排和排列:Require
httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/Users/myuser/Sites"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/myuser/Sites/testsite"
ServerName testsite.loc
ErrorLog "/private/var/log/apache2/testsite_error_log"
<Directory "/Users/myuser/Sites/testsite">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/myuser/Sites/home"
ServerName home.loc
ErrorLog "/private/var/log/apache2/home_error_log"
<Directory "/Users/myuser/Sites/home">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
每次我做出更改后,我都会重置服务器,但似乎没有生成错误日志,我也不知道发生了什么。如果有人能给我提供一条线索,或者告诉我如何解决这个问题,我将不胜感激。这个问题已经困扰了我两天了。
请注意,我不是经过培训的服务器管理员,只是一名偶然从事这项工作的工程师。我不需要简单的解释,但我确实需要比平常更明确一点的解释。谢谢。
(作为参考,我需要使用的系统是 OSX 10.9.1。如果我缺少更多数据来解决问题,请告诉我。)
编辑:包括完整的 vhosts 代码
答案1
403 并不表示服务器没有足够的权限读取文件,而是表示客户端没有足够的权限查看请求的 URL(服务器甚至不会尝试访问任何文件,甚至可能不会将请求映射到文件,具体取决于定义访问权限的位置)。
由于您的访问规则似乎/Users/myuser/Sites/testsite
正确,您应该检查:
/Users/myuser/Sites/testsite
确实是请求映射到的文档根目录/目录(请注意,这是计算机上的绝对路径,而不是相对于文档根目录的路径!)没有在任何地方指定可以覆盖此规则的其他访问规则(可能的位置是任何服务器 congi 文件,包括但不限于 vhost 定义,以及 .htaccess 文件)
如果其中有任何符号链接,请确保 apache 设置为跟随它们(
Options +FollowSymlinks
或Options +SymLinksIfOwnerMatch
)。如果您请求的是目录而不是文件:请确保索引已打开。(
Options +Indexes
)确保你确实访问了你认为的 vHost,而不是另一个,或者根本没有
答案2
只有一个人和其他人有约会,就像我一样,被同样的问题所困扰:
你说“我已经检查了 755/777 权限”
关于这一点,重要的是要知道,至少在 Mavericks 中,有必要向所有父母授予 755 权限,直到用户本身。
就我而言,我的工作项目在 /Users/albertosanchez/Documents/Trabajo/Oficina2000/www.aliaxis-ui.es 上,所以我必须向 albertosanchez、Documents、Trabajo、Oficina2000 和 www.aliaxis-ui.es 目录授予 755 权限
希望能帮助到你!