##在 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 端口更改为端口
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>