如何在 apache(xampp) 服务器中创建子域?
Posted
技术标签:
【中文标题】如何在 apache(xampp) 服务器中创建子域?【英文标题】:how to create subdomains in apache(xampp) server? 【发布时间】:2012-12-14 17:11:29 【问题描述】:一段时间以来,我一直在尝试在本地 xampp 安装中创建子域。 我尝试编辑我的 httpd.conf 文件并输入以下内容:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /ecommerce
ServerName ecomm.localhost
</VirtualHost>
我还编辑了我的 Windows 主机文件并输入: 127.0.0.1 ecomm.localhost
但是当我在我的 Firefox 中键入“ecomm.localhost”时,它给了我: 禁止访问!!! 可以请任何人帮助我吗?我到底做错了什么?我对此很陌生。 我只是想在我的“htdocs”文件夹中创建多个文件夹,并将它们用作具有子域的不同网站。例如: c:\xampp\htdocs\mainSite -----> mainSite.com 或 mainSite.localhost c:\xampp\htdocs\subSite -----> subSite.mainSite.com 或 subSite.mainSite.localhost
【问题讨论】:
【参考方案1】:试试这个:
NameVirtualHost 127.0.0.1:80
<VirtualHost *:80>
<Directory "C:\path\to\ecommerce">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName ecomm.localhost
ServerAlias www.ecomm.localhost
DocumentRoot "C:\path\to\ecommerce"
</VirtualHost>
是的,您正确编辑了主机文件。
【讨论】:
感谢 Jigar 的快速回复。我尝试使用上面的代码编辑我的 httpd.conf,但它仍然不起作用。 Firefox 说:ecomm.localhost 的“访问被禁止”和 www.ecomm.localhost 的“找不到”。我会试试 Ampps,看看它是否有效。感谢您的帮助。 抱歉,我刚刚注意到您使用的是 Windows。所以把/ecommerce
换成"C:\path\to\ecommerce"
嗨 Jigar,谢谢。有效。我按照你说的安装了 Ampps,我在控制面板中做的第一件事就是设置密码。之后,当我将我的 Firefox 指向“localhost/ampps”时,什么也没有发生。地址栏显示“localhost/ampps/index.php?act=login”,但没有显示任何内容。你能帮忙吗?我可以在“www”文件夹中看到网站,但看不到管理控制面板。
试试这个ampps.com/wiki/…如果您遇到任何问题,请在此处打开支持票ampps.com/support
@ChintanGor 你可以看看优雅重启apachectl -k graceful
(httpd.apache.org/docs/2.4/stopping.html#graceful)【参考方案2】:
除了阿塔巴克的回答:
转到 Apache > Conf > Extra -> "httpd-vhosts.conf" 文件并添加:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/subdomain"
ServerName subdomain.localhost.com
</VirtualHost>
转到 C:\WINDOWS\system32\drivers\etc -> "hosts" 文件并添加:
127.0.0.1 subdomain.localhost
来自Setting Up Multiple Subdomains Using Xampp /
【讨论】:
httpd-vhosts.conf 丢失?【参考方案3】:在 xampp\apache\conf\extra\httpd-vhosts.conf 文件中,在文件底部添加以下行以支持子域:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/sandbox"
ServerName sandbox.localhost.com
</VirtualHost>
然后在 C:\windows\System32\drivers\etc\hosts 文件中在文件底部添加以下行:
127.0.0.1 sandbox.localhost.com
之后重新启动xampp服务器并打开一个新标签,在地址栏中写入
sandbox.localhost.com
然后你会看到在沙箱文件夹中的 index.php 文件的输出
【讨论】:
【参考方案4】:这对我有用。粘贴到 httpd-vhost.conf 文件的底部,位于 xampp > Apache > Conf > Extra。确保不要评论您添加的任何 vitualhost 标记,否则在重新启动服务器时会收到“尝试启动 Apache”错误。foodporch 是我的子域的名称
<VirtualHost *:80>
DocumentRoot "c:/xampp/htdocs"
ServerName localhost
<Directory "c:/xampp/htdocs">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/xampp/htdocs/foodporch"
ServerName foodporch.localhost
<Directory "c:/xampp/htdocs/foodporch">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
记得将此行添加到 C:\WINDOWS\system32\drivers\etc 的主机文件末尾 ->
127.0.0.1 foodporch.localhost.com
【讨论】:
【参考方案5】:在 httpd.xampp.conf 文件中添加这一行以获得子域支持:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/subdomain"
ServerName subdomain.localhost.com
</VirtualHost>
然后添加:
windows hosts 文件并输入:127.0.0.1 subdomain.localhost
为我工作
【讨论】:
以上是关于如何在 apache(xampp) 服务器中创建子域?的主要内容,如果未能解决你的问题,请参考以下文章
xampp 开发:在 htdocs 文件夹中创建项目(文件夹和文件)