这篇文章上次修改于 1530 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
Xampp 是一款方便快捷的服务器环境整合包,方便用于本地调试 PHP、JSP、Perl 语言所编写的程序。保罗从刚入门网站技术就使用至今。由于近期打算做一期视频教程,我需要开一个 FTP 服务器,就打算重装升级我虚拟机里现有的版本(2015 年发布的,太古老了)顺便研究一下如何利用 Apache 添加多个虚拟主机 VirtualHost
,以便结合 HOSTS
开设多个站点。
本教程针对的是目前的最新版本(基于 PHP 7.3.3.0)而编写,其他版本仅供参考,不保证配置文件及默认设置完全相同。
需要
我的虚拟机环境为 Windows 7 7601 (SP1),如果你的版本不是 7601,可能无法安装运行库,也就无法运行 Apache。如果你需要下载 SP1 的更新补丁,请参阅 此传送门,选中下载 1.9G
的那个 ISO 镜像文件,接入虚拟机安装即可。
- 一个安装好的 Xampp 程序
- Microsoft Visual C++ 2015 Redistributable 运行库
修改主配置文件
打开检查 apache/conf/httpd.conf
主配置文件。确保引用了 httpd-vhosts.conf
文件而并未被注释。(可能在 519 行)
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
修改虚机配置文件
打开 apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件,一般里面的所有虚拟主机都被注释了。
##<VirtualHost *:80>
##ServerAdmin [email protected]
##DocumentRoot "C:/Xampp/htdocs/dummy-host.example.com"
##ServerName dummy-host.example.com
##ServerAlias www.dummy-host.example.com
##ErrorLog "logs/dummy-host.example.com-error.log"
##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>
我们分别取消注释,修改一下每项的内容,他们的意义如下:
- ServerAdmin:主机管理员的邮箱地址
- DocumentRoot:主机的根目录,也就是访问网站指向的文件夹
- ServerName:主机的域名
- ServerAlias:主机的别名,可注释不用
- ErrorLog:主机运行错误的日志文件,可用于查错
- CustomLog:主机的运行日志文件
别急着保存重启,修改完之后还不能立即食用!你还需要添加一段 Directory
记录,放在该虚拟主机里面,才可以正常访问!
<Directory "主机的根目录地址">
AllowOverride All
Require all granted
</Directory>
它们的意思分别是:
- AllowOverride All:允许额外的
.htaccess
配置文件替换默认设置 - Require all granted:允许所有请求
大家也可以参考我现在的配置文件,自己配置研究:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/Xampp/paul"
ServerName blog.paul.me
<Directory "C:/Xampp/paul">
AllowOverride All
Require all granted
</Directory>
#ErrorLog "logs/blog.paul.me-error.log"
#CustomLog "logs/blog.paul.me-access.log" common
</VirtualHost>
保存设置,重启 Apache 服务!
添加 HOSTS
HOSTS 用于在自己的电脑上设置自定义域名解析记录,可覆盖公网 DNS 服务器请求到的 IP 地址。正是由于这个特点,我们可以开启食用各种奇葩的域名,例如 im.paul
,dreamer.paul
都能是一个合法的网站域名。
在 Windows 环境下,HOSTS 文件位于 C:\Windows\System32\drivers\etc
文件夹下,我们打开编辑它。HOSTS 的编写方法非常简单,只需要前面写上 IP,后面写上域名,就可以访问了!如果你想写多条解析方便区分,你可以用 #
注释一行内容,以后就能快速辨认了。
10.7.9.201 blog.paul.me
修改保存过后,我们打开浏览器,输入 http://blog.paul.me
呈现的就是我们刚才配置的虚拟主机了。它可能是 403
错误页面,你在你指定的根目录下放置网站文件,例如 index.html
index.php
之后就没有这个问题了。
已有 2 条评论
推荐 LAMP 一键包,很方便。
@枂下 学技术贵在折腾,而且这玩意我 Windows 装不了