APMServ 内置了 Apache 服务器,而 Apache 支持通过虚拟主机功能来托管多个网站,下面我将为你提供一份非常详细、分步的教程,并附上常见问题解答。

核心原理
Apache 的虚拟主机功能允许你在一台服务器、一个 IP 地址上运行多个网站,当用户访问你的服务器时,Apache 会根据用户访问的域名(www.site1.com 或 www.site2.com)来决定将请求指向哪个网站的根目录。
准备工作
- 安装 APMServ:确保你已经成功安装并运行了 APMServ,你可以通过点击控制面板上的“启动”按钮来启动 Apache 和 MySQL 等服务。
- 准备网站文件:为你的每个网站准备好独立的文件。
- 网站A的文件放在
D:\APMServ\www\site_a目录下。 - 网站B的文件放在
D:\APMServ\www\site_b目录下。 - (注意:APMServ 的默认网站根目录是
D:\APMServ\www\htdocs,我们可以将默认网站视为你的第一个网站,或者为它也创建一个虚拟主机配置)。
- 网站A的文件放在
- 了解配置文件位置:APMServ 的 Apache 主配置文件位于:
D:\APMServ\Apache\conf\httpd.conf- 我们将要编辑这个文件来添加虚拟主机。
详细步骤:搭建多个网站
我们将以搭建两个新网站 site1.com 和 site2.com 为例。
第一步:创建网站根目录
在 APMServ 的 www 目录下,为你的每个网站创建一个独立的文件夹。
-
打开资源管理器,进入
D:\APMServ\www\目录。
(图片来源网络,侵删) -
创建两个新文件夹,分别命名为
site1和site2。 -
在每个文件夹中放入对应的网站文件,为了测试,你可以在每个文件夹里创建一个简单的
index.html文件。-
D:\APMServ\www\site1\index.html<!DOCTYPE html> <html> <head> <title>Welcome to Site 1</title> </head> <body> <h1>This is the website for Site 1</h1> <p>If you see this, your virtual host is working!</p> </body> </html> -
D:\APMServ\www\site2\index.html
(图片来源网络,侵删)<!DOCTYPE html> <html> <head> <title>Welcome to Site 2</title> </head> <body> <h1>This is the website for Site 2</h2> <p>Congratulations! Site 2 is also working!</p> </body> </html>
-
第二步:编辑 Apache 主配置文件 (httpd.conf)
这是最关键的一步,我们需要告诉 Apache 如何处理这两个新域名。
-
备份原文件:在修改
httpd.conf之前,务必备份一份原始文件,以防配置错误导致 Apache 无法启动,你可以复制一份并命名为httpd.conf.bak。 -
打开配置文件:使用记事本(推荐,避免编码问题)或 Notepad++ 等文本编辑器打开
D:\APMServ\Apache\conf\httpd.conf。 -
检查并启用
NameVirtualHost指令: 在文件中找到NameVirtualHost这一行,APMServ 默认可能已经配置好了,通常监听在*:80上。# 确保这一行存在并且没有被注释掉(行首没有 #) NameVirtualHost *:80
如果这行不存在或被注释了,请取消注释或添加它。
-
在文件末尾添加虚拟主机配置: 滚动到
httpd.conf文件的末尾,在这里添加你的虚拟主机配置块,每个网站一个<VirtualHost>块。# =================================================================== # 虚拟主机配置开始 # =================================================================== # 网站一: site1.com <VirtualHost *:80> # 网站管理的邮箱地址,可以随便写 ServerAdmin admin@site1.com # 绑定的域名,可以有多个,用空格隔开 ServerName site1.com ServerAlias www.site1.com # 网站根目录,指向你刚才创建的文件夹 DocumentRoot "D:/APMServ/www/site1" # 网站访问日志和错误日志的存放位置 ErrorLog "logs/site1-error.log" CustomLog "logs/site1-access.log" common </VirtualHost> # 网站二: site2.com <VirtualHost *:80> ServerAdmin admin@site2.com ServerName site2.com ServerAlias www.site2.com DocumentRoot "D:/APMServ/www/site2" ErrorLog "logs/site2-error.log" CustomLog "logs/site2-access.log" common </VirtualHost> # =================================================================== # 虚拟主机配置结束 # ===================================================================配置解释:
<VirtualHost *:80>:表示这个配置块监听在服务器的 80 端口上。ServerName:主域名,这是用户在浏览器中输入的主要域名。ServerAlias:别名,当用户访问www.site1.com时,也会跳转到这个网站。DocumentRoot:最重要的一行,指定了该网站文件存放的完整路径。请使用正斜杠 ,这是 Apache 推荐的做法,可以避免路径问题。ErrorLog和CustomLog:可选,但强烈建议开启,方便你排查网站错误和查看访问情况,日志文件会自动在D:\APMServ\Apache\logs\目录下创建。
第三步:配置本地 hosts 文件(用于本地测试)
由于你是在本地电脑上搭建,外部的 DNS 服务器并不知道 site1.com 和 site2.com 指向你自己的电脑(127.0.0.1),你需要修改本机的 hosts 文件来“欺骗”系统。
-
找到 hosts 文件:
- Windows 10/11:
C:\Windows\System32\drivers\etc\hosts - Windows 7/XP:
C:\Windows\System32\drivers\etc\hosts
- Windows 10/11:
-
用管理员权限编辑:右键点击该文件,选择“以管理员身份运行”,然后用记事本打开它。
-
添加域名映射:在文件末尾添加以下两行:
0.0.1 site1.com 127.0.0.1 www.site1.com 127.0.0.1 site2.com 127.0.0.1 www.site2.com0.0.1是本机的回环地址。
-
保存文件:保存并关闭。
第四步:重启 Apache 服务
配置文件的修改只有在服务重启后才会生效。
- 回到 APMServ 的控制面板。
- 点击 “停止” 按钮,先停止 Apache 服务。
- 等待几秒钟,然后点击 “启动” 按钮,重新启动 Apache 服务。
第五步:测试
打开你的浏览器,分别访问以下地址:
http://site1.comhttp://www.site1.comhttp://site2.comhttp://www.site2.com
你应该能看到你为每个网站创建的不同 index.html 页面,如果看到,恭喜你,你已经成功在 APMServ 上搭建了多个网站!
常见问题与解决方法
Q1: 所有网站都跳转到第一个网站(或默认网站)怎么办?
- 原因:最常见的原因是
ServerName的匹配问题,Apache 会按照配置文件中<VirtualHost>块的顺序进行匹配,如果一个请求的域名与多个ServerName都不匹配,它会使用文件中第一个<VirtualHost>块作为默认主机。 - 解决方案:
- 检查你的
hosts文件,确保域名映射正确。 - 检查
httpd.conf中的ServerName和ServerAlias是否拼写正确。 - 确保你的新网站配置块在
NameVirtualHost *:80指令之后。 - 确保你重启了 Apache 服务。
- 检查你的
Q2: 访问新网站时显示 403 Forbidden 错误怎么办?
- 原因:这是权限问题,Apache 进程(通常是
Apache.exe)没有权限访问你指定的网站根目录。 - 解决方案:
- 右键点击你的网站文件夹(如
D:\APMServ\www\site1)。 - 选择“属性” -> “安全” 选项卡。
- 点击“编辑...”,然后点击“添加...”。
- 在输入框中输入
SYSTEM,然后点击“检查名称”,找到后点击“确定”。 - 在权限列表中,为
SYSTEM用户赋予“完全控制”权限。 - 同样地,为
Users组也赋予“读取和执行”、“列出文件夹内容”、“读取”权限。 - 点击“应用”并“确定”。
- 右键点击你的网站文件夹(如
Q3: 如何修改默认网站(htdocs)的域名?
- 方法:同样遵循上述步骤,你可以在
httpd.conf文件中找到默认的<VirtualHost>块(它可能没有ServerName,或者指向htdocs),然后为其添加一个ServerName(default.local),并确保它在你的hosts文件中有映射,或者,你可以将默认的<VirtualHost>块注释掉,然后像添加其他网站一样为htdocs目录重新配置一个虚拟主机。
重要提示
- APMServ 的时代:APMServ 是一个非常经典的本地服务器环境,但已经停止更新多年,对于新项目,建议使用更现代、维护更好的环境,如 XAMPP、WampServer 或 宝塔面板 等,它们在多网站配置、PHP 版本管理和安全性方面通常做得更好。
- 端口占用:确保你的电脑上没有其他程序(如 IIS、其他版本的 Apache)占用了 80 端口,否则 APMServ 的 Apache 无法启动。
希望这份详细的教程能帮助你成功搭建多个网站!如果在操作中遇到任何问题,可以随时提问。
