如何让虚拟主机在 OS X Lion 中工作?

Posted

技术标签:

【中文标题】如何让虚拟主机在 OS X Lion 中工作?【英文标题】:How to get a virtual host to work in OS X Lion? 【发布时间】:2012-01-17 05:28:04 【问题描述】:

我正在尝试在我的 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>

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

# VHX START
127.0.0.1 mysite.dev
fe80::1%lo0 mysite.dev
# VHX STOP

我在系统偏好设置下激活了网络共享,并且我知道 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

看起来很明显,vhosts + hosts 代码在实际确定地址存在时正在发挥作用,但由于某种原因,这不起作用。有什么想法吗?

【问题讨论】:

请看我的编辑。只需Permission denied: access to / denied 【参考方案1】:

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

或启用目录索引:

<Directory "/Users/yuval/Sites/mysite/">
  Options +Indexes
  Allow From All
  AllowOverride All
</Directory>

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

编辑

看到您的错误消息 - 这看起来不像是目录索引问题。

在此 ServerFault 答案中提到的 /Users/yuval 目录中尝试 chmod 755:https://***.com/a/1241319/212700

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

【讨论】:

感谢您的建议。目录中有一个 index.php 文件,但我继续添加了一个 .html 文件。依然没有。然后我启用了索引并重新启动了 apache,但仍然没有运气。还有其他想法吗? 你已经把问题搞定了!确实是父目录权限问题!非常感谢! chmod 755 位于父文件夹上。【参考方案2】:

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

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

网络上的博客中有很多错误信息,所以我在这里为像我这样的 apache 菜鸟发布这个。

httpd -S
# fix the issues
sudo apachectl restart

【讨论】:

以上是关于如何让虚拟主机在 OS X Lion 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 matplotlib.pyplot 在 OSX 的虚拟环境中工作?

使用 AMPPS 在 mac (Mac OS X Lion 10.70.4) 上设置虚拟主机

pyjnius不在虚拟环境中工作

如何配置虚拟主机在 Xampp 的 htdocs 目录中工作?

如何让 MSSQL 服务容器在 Azure DevOps 管道中工作?

如何让 ibm_db 或 PyDB2 python 模块在 Mac OS X 10.7 Lion 中与 DB2 一起使用?