如何在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.conf
, C:\XAMPP\apache2\conf\httpd.conf
, C:\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\htdocs
或C:\Bitnami\wampstack\apache2\htdocs
。 但是,如果您需要开发许多项目,则build议通过虚拟主机将其分离,如前所述。
步骤2.设置虚拟主机
- 为您的项目创build一个文件夹; 我已经在
c:\vhost
创build了一个你可以称之为项目等。 - 在
c:\vhost
文件夹中,我们创build了一个子文件夹domain1或者project1或者任何其他文件夹,这取决于你(c:\vhost\project1
) - 打开
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\laravel1
,c:\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主机文件
- 停止从XAMPP / WAMP的Apache和MySQL服务。
- 打开
C:\windows\system32\drivers\etc
主机文件,需要pipe理员权限才能编辑文件。 我build议直接用Sublime文本编辑器编辑文件。 - 在文件末尾添加
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
- C:\ xampp \ apache \ conf \ extra打开httpd-vhost文件,然后添加
DocumentRoot“C:\ xampp \ htdocs \ project \ timegrid \ public”ServerName mytimegrid.me(您的select) - C:\ Windows \ System32 \ drivers \ etc打开主机文件,然后添加127.0.0.1 mytimegrid.me(您的域名)
注意你首先打开你的编辑器(记事本等)作为pipe理员模式运行,否则你不能保存这些文件。 好。
- 使用tomcat运行一个php应用程序?
- Plack :: App :: CGIBin通过Apache和mod_fastcgi – 找不到CGI脚本
- 在Windows2003上Apache和IIS并肩(都听80端口)
- 500错误没有任何在Apache日志
- “为什么Apache Harmony”或“如何在Android上使用Java 8”
- Apache2 ProxyPass for Rails App Gitlab
- 只有variables引用应该由引用返回 – Codeigniter
- SSL安装问题 – “键值不匹配”(但他们确实匹配?)
- 添加VirtualHost失败:访问禁止的错误403(XAMPP)(Windows 7)