【问题标题】:how to create subdomains in apache(xampp) server?如何在 apache(xampp) 服务器中创建子域?
【发布时间】: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

【问题讨论】:

    标签: apache web xampp subdomain


    【解决方案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

        为我工作

        【讨论】:

          猜你喜欢
          • 2019-03-17
          • 2015-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-10
          • 1970-01-01
          • 2016-06-01
          • 1970-01-01
          相关资源
          最近更新 更多