【问题标题】:Hosting multiple local sites with XAMPP使用 XAMPP 托管多个本地站点
【发布时间】:2011-04-09 06:32:24
【问题描述】:

我是使用 XAMPP 的新手,所以这对某些人来说可能很简单。

我有一些 php 项目,我希望能够在本地调试并在浏览器中查看(不是同时进行,但每次我想处理不同的项目时都不必更改配置文件/复制项目文件夹) .

在 IIS 上,您可以设置多个站点以从您的计算机上提供服务,我正在 XAMPP 中寻找类似的东西。使用 IIS 时,我在 Windows 主机文件中添加了多条记录,这样我就可以通过键入友好的 Web 样式地址(如 http://myproject1.dev)来访问本地托管的站点

谢谢。

【问题讨论】:

    标签: php localhost xampp


    【解决方案1】:

    Greg,你快到了——你需要(就像 Moses 所说的那样)设置虚拟主机。

    所以如果你的 Windows 主机文件有

    127.0.0.1    localhost
    127.0.0.1    mysite-dev.com
    127.0.0.1    anothersite-dev.com
    

    您的虚拟主机文件 (httpd-vhosts.conf) 可能如下所示:

    <VirtualHost *:80>
      DocumentRoot C:/xampp/htdocs/
      ServerName localhost
    </VirtualHost>
    
    <VirtualHost *:80>
    
        ServerName mysite-dev.com
    
        DocumentRoot "C:/sites/mysite-dev"
    
        <Directory "C:/sites/mysite-dev">
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    
    </VirtualHost>
    
    <VirtualHost *:80>
    
        ServerName anothersite-dev.com
    
        DocumentRoot "C:/sites/anothersite-dev"
    
        <Directory "C:/sites/anothersite-dev">
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    
    </VirtualHost>
    

    进行任何更改后不要忘记重新启动网络服务器。

    【讨论】:

    • +1 用于提及主机文件。我忘记了,想知道你如何处理所有这些虚拟主机.. :)
    • +1,请注意,从 Apache 2.4 开始,您必须使用 Require all granted 而不是 Order allow,deny Allow from all - stackoverflow.com/a/19588786/5108318
    【解决方案2】:

    我想补充一下最新信息。

    XAMMP 默认使用 80 端口,我们可以发布 1 个网站。我还将 IIS 用于 .Net 项目。在这方面,我将端口设置为 XAMMP,但 80 端口除外。所以我避免了冲突。

    当我们要发布多个网站时,我们应该对httpd.conf(这是当前名称)进行以下操作。

    1.设置端口

    在 httpd.conf 文件中找到#Listen 表达式。 将 Listen 80 更改为 Listen 8000(或任何您想要的)

    Listen 8000
    

    如果您需要 3 个不同的网站,请键入其他网站,包括每行 1 个定义,如下所示。

    Listen 8001
    Listen 8002
    Listen 8003
    

    2。定义通过端口访问的站点的文件路径

    再次,在 httpd.conf 文件中找到。 识别每个网站的文件夹如下。 如您所见,我在 XAMMP 目录的 htdocs 目录下创建了 3 个目录,分别称为 8000、8001、8002 和 8003。

    <VirtualHost *:8000>
     DocumentRoot "C:\XAMPP\htdocs\8000"
     ServerName localhost:8000
    <\ VirtualHost>
    <VirtualHost *:8001>
     DocumentRoot "C:\XAMPP\htdocs\8001"
     ServerName localhost:8001
    <\ VirtualHost>
    <VirtualHost *:8002>
     DocumentRoot "C:\XAMPP\htdocs\8002"
     ServerName localhost:8002
    <\ VirtualHost>
    <VirtualHost *:8003>
     DocumentRoot "C:\XAMPP\htdocs\8003"
     ServerName localhost:8003
    <\ VirtualHost>
    

    在 XAMMP 上重新启动 Apahche 服务器。 您现在可以查看您的第三个站点,例如 http://localhost:8003http://192.168.1.1:8003/

    希望有用。

    【讨论】:

      【解决方案3】:

      这个问题是差不多十年前提出的,上面的答案有点过时了。请注意,当您安装 XAMPP 时,仪表板上有一个虚拟主机的“操作指南”。

      从“Welcome to XAMPP for Windows”页面(localhost/dashboard,首次加载 localhost 时的默认设置)单击顶部菜单栏中的“HOW-TO”指南。从那里,查找链接“配置虚拟主机”,它将引导您到本地主机页面“http://localhost/dashboard/docs/configure-vhosts.html

      简而言之,该过程涉及编辑“httpd-vhosts.conf”文件(通常在 C:\XAMPP\apache\conf\extra 中)并将该文件的内容替换为如下内容:

      <VirtualHost *:80>
              DocumentRoot "C:/xampp/htdocs/"
              ServerName localhost
      </VirtualHost>
      
      # vhosts - note sample entry from XAMPP how-to throws an error, so try this:
      <VirtualHost *:80>
              DocumentRoot "C:/Users/jdoe/Documents/dev.mysite.com/htdocs"
              ServerName mysite.local
              <Directory "C:/Users/jdoe/Documents/dev.mysite.com/htdocs">
                  Require all granted
                  Options Indexes FollowSymLinks
                  AllowOverride All
                  Order allow,deny
                  Allow from all
              </Directory>
      </VirtualHost>
      

      可以通过克隆条目并修改 DocumentRoot 和 ServerName 指令以及端口号(例如 TLS (SSL) 的 443)来获得其他虚拟主机(包括 SSL 主机)。如果你想走这条路,你可以在网上找到 tutorials 来创建和签署你自己的证书。

      最后一步是让您的 Windows 机器将浏览器指向虚拟域的 Apache 主机(例如,上面的 http://mysite.local)。使用文本编辑器(笔记本即可)以管理员身份将以下条目附加到您的 hosts 文件中,该文件位于此处:

      C:\Windows\System32\drivers\etc\hosts
      

      将此条目附加到主机文件:

      127.0.0.1           mysite.local
      

      重要 - 您必须重新启动 Windows 机器,否则新主机将不会响应。有些文档会告诉您只需重新启动浏览器和 Apache 服务器,但我发现这还不够。

      IME、主机系统和 Apache 指令可能比较特殊,所以请耐心等待。您可能需要多次重新构建配置、重新启动 Apache 和重新启动计算机。

      【讨论】:

        猜你喜欢
        • 2011-05-02
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        • 2021-05-04
        • 2013-05-13
        • 2018-11-15
        • 2020-01-27
        相关资源
        最近更新 更多