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

这个标签在哪里?

我在哪里可以find虚拟主机文件?

我无法在文档中find它。

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

在XAMPP / WAMP上制作VHOST(虚拟主机)的完整指南

注意:首先,在XAMPP和WAMP或其他Windows版本的Apache软件包之间,这个指南的唯一区别在于你的计算机上安装了哪些软件包。

简介:如果你打算在PHP中开发许多独立的项目,并保持彼此隔离,vhost(虚拟主机)是一个很好的解决scheme,如:

  • 项目1是基于PHP和本地URL地址php.localhost
  • 项目2是一个Laravel项目与URL laravel.localhost
  • 项目3是一个Codeigniter与URL codeigniter.locathost
  • 项目4是一个带有wordpress.locathost

预计您将安装最新版本的XAMPP / WAMP。 顺便说一句,在我的情况下,我只安装了Apache和MySQL。

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

  • 改变你的Apache端口到端口8081等或其他一些免费的端口(注:8080有时也可以给一些问题)
  • 或者更改你的其他软件/ IIS端口并保持Apache在默认端口80的情况下Skype,只要杀死Skype应用程序,并在端口80上安装Apache后重新启动它,Skype会自动获得新的端口。

我select将我的Apache更改为端口8080

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

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

第1步。编辑httpd.conf

点击Config – > Apache(httpd.conf)或者你在这里find这个文件C:\XAMPP\apache\conf\httpd.confC:\XAMPP\apache2\conf\httpd.confC:\Bitnami\wampstack\apache\conf\httpd.conf或者C:\Bitnami\wampstack\apache2\conf\httpd.conf或者类似的位置。

改行

 Listen 80 

到8080或其他,免费的端口。

 Listen 8080 

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

虚拟主机

注意:如果您只有一个项目或许多小testing文件,默认情况下,服务器文档位于C:\XAMPP\htdocsC:\Bitnami\wampstack\apache2\htdocs 。 但是,如果您需要开发许多项目,则build议通过虚拟主机将其分离,如前所述。

步骤2.设置虚拟主机

  1. 为您的项目创build一个文件夹; 我已经在c:\vhost创build了一个你可以称之为项目等。
  2. c:\vhost文件夹中,我们创build了一个子文件夹domain1或者project1或者任何其他文件夹,这取决于你( c:\vhost\project1
  3. 打开httpd-vhosts.conf文件C:\XAMPP\apache\conf\extra\httpd-vhosts.conf根据要创build的虚拟主机C:\XAMPP\apache\conf\extra\httpd-vhosts.conf添加以下代码:
 <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项目上工作,您可以创build无限制的Laravel项目以及codeigniter,Yii等其他框架,关键是将您的Laravel项目放在c:\vhost\laravel1c:\vhost\laravel2等,并使c:\vhost\laravel1\public为DocumentRoot等如前所示。 每个Laravel项目都将拥有自己的VirtualHost URL。

保存并closures文件

一些额外的信息和说明:

  • 如果端口保持默认80,那么URL地址将是localhost
  • 如果端口保持默认80,那么VirtualHost标签应该改为<VirtualHost *:80>
  • 如果端口更改为8080 ,则URL地址将为localhost:8080
  • 而虚拟主机的URL地址可能看起来像这个project1.localhost:8080
  • 您可以像这样添加无限制的项目和虚拟主机。

我们还没有准备好,阅读更多。

第3步。编辑Windows主机文件

  1. 停止从XAMPP / WAMP的Apache和MySQL服务。
  2. 打开C:\windows\system32\drivers\etc主机文件,需要pipe理员权限才能编辑文件。 我build议直接用Sublime文本编辑器编辑文件。
  3. 在文件末尾添加127.0.0.1 project1.localhost ,保存并closures文件。
 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。


添加(build议)

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

打开你的Apache(XAMPP或WAMP)文件夹中的php文件夹下的php.ini文件,并将opcache.enable更改为0 ,如下所示:

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

添加(替代解决scheme)

重要提示:下面的解决scheme不适合testingRestful Api,canvas,沉重的解决scheme等,这可能会给你一些头痛的问题,我build议使用端口80的虚拟主机解决scheme作为默认。

可以部署临时虚拟服务器,不一定要configurationXAMPP / WAMP虚拟主机,启动CMD控制台并运行下面的php命令:

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

在你的浏览器中,你只需要正确的

 http://localhost:8001/ 

注意403访问禁止的错误

如果您在浏览到您的网站时遇到403禁止访问错误,则可能需要将其添加到您的httpd.conf文件中:

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

您可以让您的本地主机指向不同端口号上的不同文件夹。 遵循这些简单的步骤:

第1步:让你的Apache听多个端口。 转到C:\ xampp \ apache \ conf \ httpd.conf并search关键词Listen听到可以看到像这样的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在不同的端口号上采取不同的文件夹。 这就是当你打本地主机:8001 /它将采取从project1的内容,类似localhost:8002 /将指向您的project2文件夹。

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

注意:只要在httpd.conf或httpd-vhosts.conf中更改某些内容,就需要重新启动Apache。

首先,以pipe理员身份打开记事本,然后单击file > open 。 然后去你的窗口驱动程序现在searchsystem32文件夹,然后searchdrivers文件夹,然后searchetc文件夹。

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

打开并享受!

虚拟主机创build

  1. C:\ xampp \ apache \ conf \ extra打开httpd-vhost文件,然后添加
    DocumentRoot“C:\ xampp \ htdocs \ project \ timegrid \ public”ServerName mytimegrid.me(您的select)
  2. C:\ Windows \ System32 \ drivers \ etc打开主机文件,然后添加127.0.0.1 mytimegrid.me(您的域名)

注意你首先打开你的编辑器(记事本等)作为pipe理员模式运行,否则你不能保存这些文件。 好。