如何让虚拟主机在OS X Lion中运行?

Yuv*_*rmi 12 apache macos .htaccess hosts virtualhost

我正在尝试在Mac OS X 10.7安装上设置虚拟主机.我正在使用VirtualHostX来管理我的/ etc/hosts和httpd-vhosts.conf文件.目前,我的httpd-vhosts.conf文件如下所示:

NameVirtualHost *:80

<Directory "/Users/yuval/Sites/mysite/">
Allow From All
AllowOverride All
</Directory>
<VirtualHost *:80>
    ServerName "mysite.dev"
    DocumentRoot "/Users/yuval/Sites/mysite"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的/ etc/hosts文件中有这个:

# VHX START
127.0.0.1 mysite.dev
fe80::1%lo0 mysite.dev
# VHX STOP
Run Code Online (Sandbox Code Playgroud)

我在系统首选项下激活了Web共享,我知道apache正在运行.但是,当我导航到127.0.0.1或mysite.dev时,我得到以下内容:

被禁止

您无权访问此服务器上的/.

我在/ Users/yuval/Sites/mysite上的权限是755.尝试将它们更改为777也没有帮助.请注意,我选择的任何文件夹都会发生这种情况 - 我在/ Users/yuval/Sites/mysite中没有.htaccess文件.

更新:检查apache错误,这些是出现的日志:

[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to / denied
[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to /favicon.ico denied
Run Code Online (Sandbox Code Playgroud)

很明显,vhosts + hosts代码在实际确定地址存在方面正在发挥作用,但由于某种原因,这不起作用.有任何想法吗?

lee*_*ers 11

确保index.html文件位于/Users/yuval/Sites/mysite/目录中.

或启用目录索引:

<Directory "/Users/yuval/Sites/mysite/">
  Options +Indexes
  Allow From All
  AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

您还可以设置DirectoryIndex选项以查找以下默认文件index.html:http://httpd.apache.org/docs/current/mod/mod_dir.html

编辑

看到你的错误信息 - 这看起来不像目录索引问题.

试试这个ServerFault答案中提到chmod 755/Users/yuval目录:https://stackoverflow.com/a/1241319/212700

还要检查.htaccess目录中的任何文件,/Users/yuval/Sites/因为Apache也会检查这些文件.


Sha*_*mal 6

我唯一要做的就是重新指向我的自定义vhost目录(并重启apache.)

我试着指向〜/ Sites/vhosts而不是/ Users/[Username]/Sites/vhosts,我保存了所有的.conf文件,因此出现配置错误.我正在寻找apache日志,并从apache文档中了解到httpd -S哪些文件告诉我确切的配置问题在哪里.

在网上的博客上有很多错误的信息,所以我在这里发布这个像我这样的apache noobs.

httpd -S
# fix the issues
sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)