我试图让OS X附带的Apache服务器为我的本地网站工作。无论我将文件httpd-vhosts.conf
更改为什么,当我在终端中运行httpd -S
时,它表示我的虚拟主机语法正常。我在文件中输入了一堆随机字符,重新启动了Apache,它仍然说我的配置没问题。
首先我编辑了/private/etc/hosts
并在127.0.0.1 localhost
下面添加了这一行:
127.0.0.1 mysite
然后我编辑了/private/etc/apache2/httpd.conf
。我取消注释了这一行:
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
我还取消了PHP5行的注释以启用PHP。
接下来我编辑了/private/etc/apache2/extra/httpd-vhosts.conf
并设置了我的虚拟主机。重新启动apache后,我的虚拟主机无法运行并且正在运行httpd -S
表示我的虚拟主机语法正常。 Apache错误日志中没有错误。这是httpd-vhosts.conf
文件包含的内容:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/Users/Gavin/Web"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/Gavin/Web/mysite/public_html"
ServerName mysite
</VirtualHost>
无论我做了什么,我的虚拟主机都无法正常工作。所以我尝试将httpd-vhosts.conf
更改为:
NameVirtualHost *:80
<VirtualHost @*^#*&^#$>
(#*&#*$&@(*UOSKSFLKSFJLJF##*(&
</VirtualHost>
我使用sudo apachectl restart
重新启动Apache,然后运行apachectl -S
并说:
httpd: Could not reliably determine the server's fully qualified domain name, using Gavins-MacBook-Pro.local for ServerName
VirtualHost configuration:
Syntax OK
显然我的httpd-vhosts.conf文件不正常,所以加载哪个文件?在终端我运行httpd -V|grep SERVER_CONFIG_FILE
并返回:
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
这显然是正确的httpd.conf
文件,那么这里发生了什么?有什么想法吗?
答案 0 :(得分:1)
你应该期待'/ private / etc / apache2 / users /'文件夹。有一个特殊的(您的用户名).conf,您可以在其中添加虚拟主机。
答案 1 :(得分:1)
尝试了所有内容后,没有任何工作,我下载了一个用于管理虚拟主机的应用程序。这是昂贵的,但有一个免费的14天试用(只是谷歌搜索它,你会发现它)。无论如何,该应用程序将我的httpd-vhosts.conf文件更改为此文件,现在它正在运行:
NameVirtualHost *:80
<Directory "/Users/Gavin/Web/">
Allow From All
AllowOverride All
Options +Indexes
</Directory>
<VirtualHost *:80>
ServerName "localhost"
DocumentRoot "/Users/Gavin/Web"
</VirtualHost>
<Directory "/Users/Gavin/Web/mysite/public_html/">
Allow From All
AllowOverride All
Options +Indexes
</Directory>
<VirtualHost *:80>
ServerName "mysite"
DocumentRoot "/Users/Gavin/Web/mysite/public_html"
</VirtualHost>
我在OS X上阅读了20多个关于设置vhosts的教程,但没有一个有效。这个工具对我有用。