如何在XAMPP上设置Apache虚拟主机(Windows)

时间:2015-01-03 11:33:26

标签: apache xampp wamp

这个标签在哪里?

我在哪里可以找到vhosts文件?

我无法在文档中找到它。

<VirtualHost hostname:80>
   ...
   SetEnv NS_ENV variable_value
   ...
</VirtualHost>

4 个答案:

答案 0 :(得分:91)

在XAMPP / WAMP

上制作VHOST(虚拟主机)的完整指南
  

注意:首先,XAMPP和WAMP或Windows的其他Apache软件包之间的唯一区别是,问题是计算机上安装了这些软件包的位置。

简介: vhost(虚拟主机)是一个很好的解决方案,如果您打算在php中开发许多独立项目并让它们彼此隔离,例如:

  • 项目1基于php并具有本地网址php.localhost
  • 项目2是一个带有网址laravel.localhost
  • 的Laravel项目
  • 项目3是具有网址codeigniter.locathost
  • 的Codeigniter
  • 项目4是带有网址wordpress.locathost
  • 的WordPress

您需要安装最新版本的XAMPP / WAMP。顺便说一句,就我而言,我只安装了Apache和MySQL。

  

*注意:默认情况下,大多数Web服务器将使用端口80作为默认端口,在某些情况下,如果您安装了另一个Web服务器(Microsoft IIS),它也使用端口80在其他情况下,SKYPE也有时会使用端口80,就像Windows 8/10中某些用户的情况一样,在这种情况下你可以做两件事

  • 将您的Apache端口更改为端口80808081等或其他一些空闲端口(注意:8080有时也会出现问题)
  • 或者更改你的其他软件/ IIS端口,并在Skype的情况下将Apache保持默认端口80,只需终止Skype应用程序并在端口80上安装Apache后重新启动它,Skype将自动获得新端口。

我选择将我的Apache更改为端口8080

  

注意:
    - 对于下一节,我们需要使用文本编辑器,如记事本或常规IDE。我使用了崇高的文本编辑器     - 如果将Apache保留为默认端口80,请跳过此部分并转到虚拟主机

更改XAMPP / WAMP端口(仅在必要时) 如果保留默认值,则跳转到设置虚拟主机

步骤1.编辑httpd.conf

点击配置 - &gt; Apache(httpd.conf) 或者您在C:\XAMPP\apache\conf\httpd.confC:\XAMPP\apache2\conf\httpd.confC:\Bitnami\wampstack\apache\conf\httpd.confC:\Bitnami\wampstack\apache2\conf\httpd.conf或类似位置找到该文件。

使用

更改行
Listen 80

到8080或其他免费端口。

Listen 8080

我们打开httpd.conf文件时,我们需要确保包含httpd-vhosts.conf: 包括conf/extra/httpd-vhosts.conf

虚拟主机

  

注意:默认情况下,服务器文档位于C:\XAMPP\htdocsC:\Bitnami\wampstack\apache2\htdocs,如果您只有一个项目或许多小型测试文件,那就没问题。但是,如果您需要开发许多项目,那么建议通过虚拟主机将它们分开,如前所述。

步骤2.设置虚拟主机

  1. 为您的项目创建一个文件夹;我在c:\vhost中创建了一个,你可以称之为项目等。
  2. c:\vhost文件夹中,我们创建了一个子文件夹domain1或project1或任何其他文件夹,由您自己决定(c:\vhost\project1
  3. 打开httpd-vhosts.conf文件C:\XAMPP\apache\conf\extra\httpd-vhosts.conf根据您要创建的vhost数量,添加以下代码:
  4. <Directory C:/vhost>
        AllowOverride All
        Require all granted
    </Directory>
    
    #this is the default address of XAMPP    
    <VirtualHost *:8080>
        DocumentRoot "C:/XAMPP/htdocs/"
        ServerName localhost
    </VirtualHost>
    
    #this is the first vhost address in XAMPP
    <VirtualHost *:8080>
        DocumentRoot "C:/vhost/project1/"
        ServerName php.localhost
        SetEnv NS_ENV variable_value
    </VirtualHost>
    
    #this is the second vhost address in XAMPP for project like Laravel
    <VirtualHost *:8080>
        DocumentRoot "C:/vhost/Laravel-Blog/public"
        ServerName laravel.localhost
    </VirtualHost>
    
    etc
    
      

    注意:如果您使用Laravel项目,您可以创建无限的Laravel项目以及其他框架,如codeigniter,Yii等,重点是   将您的Laravel项目放在c:\vhost\laravel1上,   c:\vhost\laravel2等,并c:\vhost\laravel1\public为。{   DocumentRoot等如前所示。每个Laravel项目都有自己的   VirtualHost URL。

    保存并关闭文件

    一些其他信息和说明:

    • 如果端口保持默认值80,则URL地址将为localhost
    • 如果端口保持默认值80,则VirtualHost标记应更改为<VirtualHost *:80>
    • 如果端口更改为8080,则网址将为localhost:8080
    • vhost URL地址可能如此project1.localhost:8080
    • 您可以像这样添加无限的项目和虚拟主机。

    我们尚未准备好,请阅读更多内容。

    步骤3.编辑Windows主机文件

    1. 从XAMPP / WAMP停止Apache和MySQL服务。
    2. C:\windows\system32\drivers\etc中打开主机文件 您需要管理员权限才能编辑该文件。 我建议直接使用Sublime文本编辑器编辑文件。
    3. 在文件末尾添加127.0.0.1 project1.localhost,保存并关闭文件。
    4. 127.0.0.1       localhost
      127.0.0.1       php.localhost
      127.0.0.1       laravel.localhost
      127.0.0.1       codeigniter.localhost
      127.0.0.1       wordpress.localhost
      127.0.0.1       laravel2.localhost
      etc. those are just examples
      

      保存文件

      最后一步。 再次启动/重新启动Apache和MySQL。

      <小时/> 添加(建议)

        

      注意:在您的开发过程中,您可能会遇到缓存问题,因为您可能会冒险更新Laravel中的某些内容并且它不会出现在您的浏览器中。因此,您可能需要在本地环境中的开发过程中禁用php缓存。

      在Apache(XAMPP或WAMP)文件夹中的php文件夹下打开文件php.iniopcache.enable更改为0,使其如下所示:

      [opcache]
      zend_extension=php_opcache.dll
      ; Determines if Zend OPCache is enabled
      opcache.enable=0
      

      添加(替代解决方案)

        

      重要提示:以下解决方案不适合测试Restful Api,canvas,重型解决方案等等。这可能会给您带来一些麻烦,我建议使用默认端口80的虚拟主机解决方案。< / p>

      可以部署临时虚拟服务器,而无需配置XAMPP / WAMP虚拟主机,启动CMD控制台并运行以下php命令:

      php -S localhost:8001 -t c:\vhost\Laravel-Project\public
      
      • 端口8001可以更改为任何可用的端口号,并确保与其他软件端口冲突。
      • c:\vhost\Laravel...路径应该更改为您的项目路径。
      • 可以启动多个服务器,但应该有不同的端口号。

      在浏览器中,您只需要正确

      http://localhost:8001/
      

      请注意403访问禁止错误

      如果浏览到站点时出现403 Access forbidden错误,则可能需要将其添加到httpd.conf文件中:

      <Directory path_to_dir>
          AllowOverride none
          Require all granted
      </Directory>
      

答案 1 :(得分:1)

您可以使本地主机指向不同端口号上的不同文件夹。请按照以下简单步骤操作:

第1步:让您的apache收听多个端口。转到C:\ xampp \ apache \ conf \ httpd.conf并搜索关键词Listen你可以看到类似这样的内容听80.现在告诉你的apache听多个端口,用下面的内容替换它

  • 听80
  • 听8001
  • 听8002

第2步:现在转到“C:\ xampp \ apache \ conf \ extra \ _ httpd-vhosts.conf”,这是实际播放器。在文件的末尾,您可以指定以下内容:

DocumentRoot“C:/ xampp / htdocs / project1” ServerName localhost:8001

DocumentRoot“C:/ xampp / htdocs / project2” ServerName localhost:8002

告诉你的apache在点击不同的端口号时采用不同的文件夹。那是当你点击localhost:8001 /它将从project1获取内容,类似localhost:8002 /将指向你的project2文件夹。

通过这样做,我们在本地机器上运行2个不同的站点。

注意: 无论何时在httpd.conf或httpd-vhosts.conf中更改内容,都需要重新启动Apache。

答案 2 :(得分:0)

首先,以管理员身份打开记事本 然后点击file > open。然后转到您的窗口驱动程序,现在搜索system32文件夹,然后搜索drivers文件夹,然后搜索etc文件夹。

现在您将看到一个空文件夹,所以不要担心在底部看到文本文档(*.txt)。将视图更改为all files,然后您将看到vhost文件。

打开并享受!

答案 3 :(得分:0)

虚拟主机创建

  1. C:\ XAMPP \阿帕奇\ CONF \额外 然后打开httpd-vhost文件 添加
                     DocumentRoot“C:\ xampp \ htdocs \ project \ timegrid \ public”          ServerName mytimegrid.me(你的选择)
  2. C:\ Windows \ System32下\驱动程序\等     打开hosts文件,然后添加127.0.0.1 mytimegrid.me(您的域名)
  3. N.B。首先打开您的编辑器(记事本等....)作为运行管理员模式,否则您无法保存这些文件。确定。