如何在 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

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

将您的 Apache 端口更改为端口 80808081 等或其他一些空闲端口(注意: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.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.confInclude conf/extra/httpd-vhosts.conf

虚拟主机

注意:默认情况下,服务器文档位于C:\XAMPP\htdocsC:\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 标记应更改为 &lt;VirtualHost *:80&gt; 如果端口改为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 文件中: AllowOverride none 要求所有已授予 有什么办法可以去掉网址中的 :8001 吗?我的意思是我可以让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 &gt; 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

Windows下安装的XAMPP如何设置Apache和MySQL等服务开机自启动

在 Apache 上设置虚拟主机(XAMPP、Windows 10)

如何在 localhost:8080 上使用 XAMPP 设置虚拟主机

在 Windows Server 上安装 XAMPP 时无法设置注册表项

xampp安装后运行apache出错