我正在尝试在本地主机上的苹果 Mac 上设置虚拟主机。服务器由 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,其中包含单词test。
我重新启动了服务器,然后浏览到测试 URL,看到的是 Apache 的默认页面而不是我的测试页面。 vhosts 文件适用于另一个虚拟主机,复制代码并更改相应位(即文件夹路径),hosts 文件有效,就像当 Apache 关闭时一样,我的浏览器显示找不到服务器。
为什么 Apache 拒绝显示我的测试代码?还有其他文件需要更改吗?我想不出其他的,通常只是 linux/windows 上的。
在 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
尝试将“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
为我工作,问候!
您是否已告诉 Apache 实际上使用基于名称的虚拟主机?
# Use name-based virtual hosting.
#
NameVirtualHost *:80
我不相信它在 Mac 上的 Xampp 中默认启用。
导航到以下文件:
/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
添加虚拟主机代码如下:
<VirtualHost *:80>
DocumentRoot "/Applications/XAMPP/htdocs/your_project_folder"
ServerName yourlocaldomain.test
<Directory "/Applications/XAMPP/htdocs/your_project_folder">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
打开主机文件:
sudo nano /etc/hosts
在此文件中添加以下主机 URL:
127.0.0.1 yourlocaldomain.test