您需要按照一些步骤在 Windows 中使用 apache 创建虚拟主机。
Note:首先,本指南的 XAMPP 和 WAMP 或其他 Windows 的 Apache 包之间的唯一区别是这些包安装在计算机上的位置的问题。
介绍:如果您打算在 PHP 中开发许多独立项目并使它们彼此隔离,vhost(虚拟主机)是一个很好的解决方案,例如:
- 项目1基于PHP,有本地URL地址
php.localhost
- 项目 2 是一个带有 URL 的 Laravel 项目
laravel.localhost
- 项目 3 是一个带有 URL 的 Codeigniter
codeigniter.localhost
- 项目 4 是一个带有 URL 的 WordPress
wordpress.localhost
您应该安装最新版本的 XAMPP/WAMP。顺便说一句,就我而言,我只安装了 Apache 和 MySQL。
*Note:默认情况下,大多数 Web 服务器将使用端口 80 作为默认端口,在某些情况下,如果您安装了另一个 Web 服务器(例如(Microsoft IIS)),它也会使用端口 80,或者在其他情况下,SKYPE 有时也会使用端口 80,例如对于某些用户来说,Windows 8/10 中的某些情况就是这种情况,在这种情况下,您可以做两件事
- 将您的 Apache 端口更改为端口
8080
, 8081
等等,或者其他一些免费端口(注意:8080有时也会出现一些问题)
- 或者更改您的其他软件/IIS 端口,并在 Skype 的情况下将 Apache 保留为默认端口 80,只需在端口 80 上安装 Apache 后终止 Skype 应用程序并重新启动它,Skype 将自动获取新端口。
我选择将我的 Apache 更改为端口8080.
Note:
- 对于下一部分,我们需要使用文本编辑器,例如记事本或常规 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
or C:\Bitnami\wampstack\apache2\conf\httpd.conf
或类似的位置。
更改行
Listen 80
至 8080 或其他自由端口。
Listen 8080
虽然我们有httpd.conf
文件打开我们需要确保httpd-vhosts.conf
已经包括了:Include conf/extra/httpd-vhosts.conf
虚拟主机
Note:默认情况下,服务器文档位于C:\XAMPP\htdocs
or C:\Bitnami\wampstack\apache2\htdocs
如果您只有一个项目或许多小测试文件,那也没关系。但是,如果您需要开发许多项目,那么建议通过虚拟主机将它们分开,如前所述。
步骤2.设置虚拟主机
- 为您的项目创建一个文件夹;我已经创建了一个
c:\vhost
你可以称之为项目等。
- In
c:\vhost
文件夹中我们创建一个子文件夹domain1或project1或任何其他,这取决于你(c:\vhost\project1
)
- Open
httpd-vhosts.conf
file 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
Note:如果您从事 Laravel 项目,您可以创建无限的 Laravel 项目以及其他框架,如 CodeIgniter、Yii 等,重点是
启动你的 Laravel 项目c:\vhost\laravel1
,
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
etc
- 您可以通过这种方式添加无限的项目和虚拟主机。
我们还没有准备好,请阅读更多内容。
步骤 3. 编辑 Windows 主机文件
- 从 XAMPP/WAMP 停止 Apache 和 MySQL 服务。
- 打开hosts文件
C:\windows\system32\drivers\etc
您需要管理员权限才能编辑该文件。
我建议直接使用 Sublime 文本编辑器编辑文件。
- Add
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。
**Addition (Suggestion)**
Note:在您的开发过程中,您可能会遇到缓存打开的问题,因为您可能会冒险更新 Laravel 中的某些内容,但它不会出现在您的浏览器中。因此,您可能需要在本地环境的开发过程中禁用 PHP 缓存。
打开文件php.ini
在 Apache(XAMPP 或 WAMP)文件夹中的 PHP 文件夹下,
改变opcache.enable
to 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 访问禁止错误,您可能需要将其添加到 httpd.conf 文件中:
<Directory path_to_dir>
AllowOverride none
Require all granted
</Directory>