在Mac上的XAMPP上设置虚拟主机

4
我正在尝试在我的苹果电脑上的localhost上设置虚拟主机。服务器由XAMPP提供,其中打包了Apache/MySQL/PHP。
到目前为止,我已经完成以下操作:
编辑了/private/etc/hosts文件,将127.0.0.1指向test.myserver.local。
127.0.0.1       test.myserver.local

我已经编辑了/Applications/XAMPP/etc/extra/httpd-vhosts.conf文件,并添加了我的虚拟主机详细信息。
<VirtualHost *:80>
   DocumentRoot /Users/???/Documents/workspace/trunk/htdocs
   ServerName test.myserver.local
  <Directory "/Users/???/Documents/workspace/trunk/htdocs">
     AllowOverride All
  </Directory>
</VirtualHost>

在其中放置一个简单的index.html文件,里面有测试一词。

我已经重新启动了服务器,然后浏览到测试网址,却被Apache的默认页面所拦截,而不是我的测试页面。虚拟主机文件对于另一个虚拟主机有效,代码已复制并更改了相应的部分(即文件夹路径),主机文件是有效的,因为当Apache关闭时,我的浏览器会显示“未找到服务器”的消息。

为什么Apache拒绝显示我的测试代码?还有其他文件需要更改吗?我想不出还有其他的文件需更改,因为通常只有那些在linux/windows上的文件需要修改。


1
你能展示一下你在/private/etc/hosts/Applications/XAMPP/etc/extra/httpd-vhosts.conf中编辑的内容,并在问题中更新吗?编辑后你是否重启了Apache服务器? - Praveen Kumar Purushothaman
你重启了 Apache 后面对吧? - prodigitalson
1
我曾经听说过,如果你在XAMPP的某些版本中没有保留localhost虚拟主机条目会出现问题... 也许你应该尝试添加回去。 尽管可能性不大,但也不妨一试... :) - Aaron Saray
我有时使用以 .local 结尾的名称会出现问题。你的其他虚拟主机也在 .local 顶级中吗?如果它们是其他内容,请将此项更改为其他内容。 - Moshe Katz
你可以尝试使用另一个端口,比如8080。也许有多个站点配置了相同的端口,导致冲突。 - Ateszki
显示剩余4条评论
3个回答

9
在xampp上,您需要编辑3个文件来设置虚拟主机。像您之前做的那样编辑/etc/hosts和/Applications/XAMPP/etc/extra/httpd-vhosts.conf。但是,您还需要编辑/Applications/XAMPP/xamppfiles/etc/httpd.conf以包含http-vhosts.conf。请确保您已经取消了此行的注释。
# Virtual hosts
Include /Applications/XAMPP/etc/extra/httpd-vhosts.conf

编辑

您尝试过添加这些代码行吗?

Order allow,deny
Allow from all

在这之前


AllowOverride All

就像我说过的,这个文件已经被包含了。我在那里有其他工作的虚拟主机。 - Husman
你需要编辑的第三个文件是什么?你之前提到了两个,就像之前的方法一样。 - Kamel Labiad
这是hosts文件! - Ateszki

1

尝试将“localhost”的设置留在文件“httpd-vhosts.conf”的末尾,即:

#
# Virtual Hosts
#
...

# others vhost
<VirtualHost *:80>
...
</VirtualHost>

# localhost
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
    <Directory "/Applications/XAMPP/xamppfiles/htdocs">
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Order Allow,Deny
        Allow From All
    </Directory>
</VirtualHost>
#end of httpd-vhosts.conf file

对我有用,问候!


0

你是否已经告诉Apache实际使用基于名称的虚拟主机?

# Use name-based virtual hosting.
#
NameVirtualHost *:80

我不相信在Mac上Xampp默认启用它。


是的,它已经为其他一些虚拟主机设置好并且它们可以工作。无论如何还是谢谢你。有第二个人帮忙总是好的。 - Husman
@Danack 这个选项应该放在哪里?是在 http-vhosts.conf 文件中吗? - hitautodestruct

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接