如何在 XAMPP(Windows)上设置 Apache 虚拟主机 [关闭]
Posted
技术标签:
【中文标题】如何在 XAMPP(Windows)上设置 Apache 虚拟主机 [关闭]【英文标题】:How To Set Up Apache Virtual Hosts on XAMPP (Windows) [closed] 【发布时间】:2015-03-01 12:08:00 【问题描述】:如何在 XAMPP (Windows) 上设置 Apache 虚拟主机
【问题讨论】:
太棒了,看起来就是这样。我只是将标签添加到现有的两个还是覆盖? 如果可能的话,我想为一个项目配置我的虚拟主机。根据此 CMS 文档:nnb.geomash.com/documentation/1.6/basic-installation/… 好吧,这就是我的理解;你已经安装了 XAMPP 和 apache 网络服务器,并且你想为应用程序创建单独的虚拟主机;假设您的主要网络服务器是locahost,而您的新应用程序是cms.localhsot?对吗 据我了解,vhosts用于在同一台机器上运行多个域。这就是我想要实现的。另外,文档教程告诉你去做(这让我觉得它在某个时候会派上用场,即使我现在不知道)。 【参考方案1】:##在 XAMPP/WAMP 上制作 VHOST(虚拟主机)的完整指南
注意:首先,在 XAMPP 和 WAMP 或其他适用于 Windows 的 Apache 软件包之间,本指南的唯一区别是这些软件包安装在您计算机上的什么位置。
简介:vhost(虚拟主机)是一个很好的解决方案,如果您打算在 php 中开发多个独立项目并保持它们彼此隔离,例如:
项目1基于php,本地url地址php.localhost
项目 2 是一个 Laravel 项目,其 url 为 laravel.localhost
项目 3 是一个带有 url codeigniter.localhost
的 Codeigniter
项目 4 是一个带有 url wordpress.localhost
的 WordPress
您应该已经安装了最新版本的 XAMPP/WAMP。顺便说一句,就我而言,我只安装了 Apache 和 mysql。
将您的 Apache 端口更改为端口*注意:默认情况下,大多数 Web 服务器将使用端口 80 作为默认端口,在某些情况下,如果您安装了另一个 Web 服务器(如(Microsoft IIS)),它也会使用端口 80 或在其他情况下,SKYPE 有时也会使用端口 80,就像某些用户在 Windows 8/10 中的情况一样,在这种情况下,您可以做两件事
8080
、8081
等或其他一些空闲端口(注意:8080 有时也会出现一些问题)
或更改您的其他软件/IIS 端口并将 Apache 保留为默认端口 80,以防 Skype,只需在端口 80 上安装 Apache 后终止 Skype 应用并重新启动它,Skype 将自动获取新端口。
我已选择将我的 Apache 更改为 8080 端口。
对于下一部分,我们需要使用文本编辑器,如记事本或常规 IDE。我使用了 sublime 文本编辑器。 如果您将 Apache 保留为默认端口 80,请跳过此部分并继续使用虚拟主机注意:
更改 XAMPP/WAMP 端口(仅在必要时) 如果保留默认,则跳转到设置虚拟主机
第 1 步。编辑 httpd.conf
点击配置 -> Apache (httpd.conf)
或者您可以在 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
虚拟主机
注意:默认情况下,服务器文档位于
C:\XAMPP\htdocs
或C:\Bitnami\wampstack\apache2\htdocs
,如果您只有一个项目或许多小测试文件,这很好。但是,如果您需要开发许多项目,那么建议您通过虚拟主机将它们分开,如前所述。
步骤 2. 设置虚拟主机
-
为您的项目创建一个文件夹;我在
c:\vhost
中创建了一个,你可以称之为项目等。
在c:\vhost
文件夹中,我们创建一个子文件夹 domain1 或 project1 或任何其他,这取决于您 (c:\vhost\project1
)
打开httpd-vhosts.conf
文件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 项目,您可以创建无限的 Laravel 项目以及其他框架,如 codeigniter、Yii 等,重点是 在
c:\vhost\laravel1
上有你的 Laravel 项目,c:\vhost\laravel2
等并将c:\vhost\laravel1\public
设为 DocumentRoot 等如前所示。每个 Laravel 项目都有自己的 虚拟主机 URL。
保存并关闭文件
一些附加信息和说明:
如果端口保持默认 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
中打开主机文件
您需要管理员权限才能编辑文件。
我建议直接使用 Sublime 文本编辑器编辑文件。
在文件末尾添加127.0.0.1 project1.localhost
,保存并关闭文件。
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.ini
,然后
将opcache.enable
更改为0
,如下所示:
[opcache]
zend_extension=php_opcache.dll
; Determines if Zend OPCache is enabled
opcache.enable=0
加法(替代方案)
重要提示:以下解决方案不适合测试Restful Api、canvas、重型解决方案等,可能会让你有些头疼,建议使用默认80端口的虚拟主机解决方案。
无需配置 XAMPP/WAMP 虚拟主机即可部署临时虚拟服务器,启动 CMD 控制台并运行以下 php 命令:
php -S localhost:8001 -t c:\vhost\Laravel-Project\public
端口 8001 可以更改为任何可用的端口号,并确保不与其他软件端口冲突。
c:\vhost\Laravel...
路径应更改为您的项目路径。
可以启动多个服务器,但应该有不同的端口号。
在你的浏览器中你只需要写
http://localhost:8001/
关于 403 访问禁止错误的注意事项
如果您在浏览您的网站时收到 403 Access denied 错误,您可能需要将其添加到您的 httpd.conf 文件中:
<Directory path_to_dir>
AllowOverride none
Require all granted
</Directory>
【讨论】:
如果您在浏览您的站点时收到 403 禁止访问错误,您可能需要将其添加到您的 httpd.conf 文件中:http://local.xyz.com
指向http://localhost:8001/xyz/public
吗?
@maytham-ɯɐɥʇʎɐɯ 是的,我按照指南进行操作,从第一次尝试开始就非常棒,谢谢。我的端口 80 也被其他东西占用了,这就是我使用端口 8989 的原因所以我想知道是否可以不将其写入 url,例如从 vhost 配置或主机文件中强制它
@George 据我所知,我认为这是不可能的,也就是说我在没有研究过这种可能性之前从未尝试过。我刚刚在 google 上进行了快速搜索,发现链接可以阅读 webmasters.stackexchange.com/questions/55123/… 和
@maytham-ɯɐɥʇʎɐɯ 我刚刚阅读了您提供的链接,目前似乎不可能,所以我将尝试释放端口 80,因为它比尝试实现我想要的更容易,是的,我很懒 :d,如果我找到有关此主题的更多信息,我将在此处链接。非常感谢您的帮助,祝您有美好的一天【参考方案2】:
虚拟主机创建
-
C:\xampp\apache\conf\额外
然后打开 httpd-vhost 文件
添加
DocumentRoot "C:\xampp\htdocs\project\timegrid\public"
ServerName mytimegrid.me(您的选择)
C:\Windows\System32\drivers\etc
打开 hosts 文件,然后添加 127.0.0.1 mytimegrid.me(Your Domain Name)
注意您首先以管理员身份运行模式打开您的编辑器(记事本等....),否则您无法保存这些文件。好的。
【讨论】:
【参考方案3】:首先,以管理员身份打开记事本,然后
然后点击file > open
。然后转到您的窗口驱动程序现在搜索system32
文件夹,然后搜索drivers
文件夹,然后搜索etc
文件夹。
现在您将看到一个包含空文件的文件夹,所以不用担心会在底部看到文本文档 (*.txt
)。将视图更改为all files
,然后您将看到vhost
文件。
打开并享受!
【讨论】:
【参考方案4】:您可以让您的 localhost 指向不同端口号上的不同文件夹。遵循这些简单的步骤:
第 1 步: 让您的 apache 监听多个端口。转到 C:\xampp\apache\conf\httpd.conf 并搜索关键字 Listen 可以看到类似于 Listen 80 的内容。现在告诉您的 apache 侦听多个端口,将其替换为以下内容
听 80 听8001 听8002第 2 步: 现在转到“C:\xampp\apache\conf\extra\httpd-vhosts.conf”,这是真正的播放器。在文件末尾,您可以指定如下内容:
DocumentRoot "C:/xampp/htdocs/project1" 服务器名称 localhost:8001
DocumentRoot "C:/xampp/htdocs/project2" 服务器名称 localhost:8002
这告诉您的 apache 在访问不同的端口号时采用不同的文件夹。也就是说,当您点击 localhost:8001/ 时,它将从 project1 获取内容,同样 localhost:8002/ 将指向您的 project2 文件夹。
通过这样做,我们在本地机器上运行了 2 个不同的站点。
注意:每当您更改 httpd.conf 或 httpd-vhosts.conf 中的内容时,您都需要重新启动 apache。
【讨论】:
给其他人的注意事项:记得分别使用以上是关于如何在 XAMPP(Windows)上设置 Apache 虚拟主机 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Windows下安装的XAMPP如何设置Apache和MySQL等服务开机自启动
在 Apache 上设置虚拟主机(XAMPP、Windows 10)
如何在 localhost:8080 上使用 XAMPP 设置虚拟主机