下面我将为你提供一个非常详细、分步的教程,使用 EasyPHP 的图形界面和配置文件两种方法,并附上常见问题解答。
核心概念
在开始之前,你需要理解几个关键概念:
- 域名:你为每个网站购买的网址,
www.site1.com和www.site2.com。 - 本地 hosts 文件:在你的个人电脑上,一个没有扩展名的文本文件 (
hosts),它的作用是将域名(如www.site1.com)解析到一个特定的 IP 地址(如0.0.1,也就是你自己的电脑),这样,你就可以在本地测试这些域名,而无需将域名指向你的真实服务器。 - Apache 虚拟主机:Apache Web 服务器的一项功能,允许它根据请求的域名,将用户导向到服务器上不同的网站目录。
- EasyPHP 根目录:EasyPHP 默认存放所有网站文件的主文件夹,通常是
C:\EasyPHP\www\。
使用 EasyPHP 的图形界面 (推荐新手)
这是最简单、最不容易出错的方法。
第 1 步:准备网站目录
在你的 EasyPHP 根目录(C:\EasyPHP\www\)下,为每个网站创建一个独立的文件夹。
C:\EasyPHP\www\site1C:\EasyPHP\www\site2
在每个文件夹里,放入对应的网站文件(index.html)。
site1/index.html内容可以是:<h1>这是 Site 1</h1>site2/index.html内容可以是:<h1>这是 Site 2</h1>
第 2 步:配置本地 hosts 文件
这一步至关重要,它让你的电脑知道 www.site1.com 和 www.site2.com 指向的是你自己的电脑。
-
找到文件位置:
C:\Windows\System32\drivers\etc\hosts -
用管理员权限打开它:右键点击
hosts文件 -> “打开方式” -> 选择记事本或其他文本编辑器,如果提示权限不足,你需要右键点击记事本程序,选择“以管理员身份运行”,然后再打开hosts文件。 -
在文件末尾添加以下内容:
0.0.1 www.site1.com 127.0.0.1 www.site2.com # 127.0.0.1 是你本机的回环地址
-
保存文件,系统可能会提示你无法保存,你需要先将文件另存到桌面,然后再复制回原文件夹并覆盖。
第 3 步:在 EasyPHP 控制面板中添加虚拟主机
-
启动 EasyPHP。
-
在右下角的任务栏右键点击 EasyPHP 图标,选择
Configuration->HTTP。 -
这会打开 Apache 的配置文件
httpd.conf。别怕,我们不用手动编辑它! -
在
httpd.conf文件窗口的顶部,点击Virtual hosts标签页。 -
你会看到一个默认的虚拟主机配置,我们需要添加新的。
-
点击
Add a virtual host按钮。 -
在弹出的窗口中填写信息:
- ServerName:
www.site1.com(你的域名) - DocumentRoot:
C:/EasyPHP/www/site1(你的网站文件夹路径,请使用正斜杠 ) - Alias:
site1(可选,一个简短的别名,可以通过http://localhost/site1访问)
- ServerName:
-
点击
OK保存。 -
重复步骤 6-8,为
www.site2.com添加一个新的虚拟主机,DocumentRoot设置为C:/EasyPHP/www/site2。
第 4 步:重启 Apache 服务
配置更改后必须重启 Apache 才能生效。
- 在 EasyPHP 的任务栏图标上右键点击。
- 选择
Restart->Apache。
第 5 步:测试
打开你的浏览器,分别访问:
http://www.site1.com-> 应该显示<h1>这是 Site 1</h1>http://www.site2.com-> 应该显示<h1>这是 Site 2</h1>
你也可以通过别名访问:
http://localhost/site1-> 同样指向 Site 1
手动编辑 Apache 配置文件 (适合进阶用户)
如果你对配置文件更熟悉,或者图形界面无法满足复杂需求,可以手动编辑。
第 1 步和第 2 步
与方法一完全相同:准备网站目录 和 配置本地 hosts 文件。
第 3 步:编辑 httpd.conf 文件
-
启动 EasyPHP,右键点击图标 ->
Configuration->HTTP,打开httpd.conf文件。 -
在文件中找到
<VirtualHost *:80>部分,EasyPHP 通常会有一个默认的虚拟主机配置,你可以参考它的格式。 -
在最后一个
</VirtualHost>结束标签之后,添加你的新虚拟主机配置。# 第一个网站配置 <VirtualHost *:80> ServerName www.site1.com DocumentRoot "C:/EasyPHP/www/site1" <Directory "C:/EasyPHP/www/site1"> Options Indexes FollowSymLinks AllowOverride All Require local </Directory> </VirtualHost> # 第二个网站配置 <VirtualHost *:80> ServerName www.site2.com DocumentRoot "C:/EasyPHP/www/site2" <Directory "C:/EasyPHP/www/site2"> Options Indexes FollowSymLinks AllowOverride All Require local </Directory> </VirtualHost>配置解释:
<VirtualHost *:80>: 定义一个监听 80 端口(HTTP 默认端口)的虚拟主机。ServerName: 域名。DocumentRoot: 网站根目录路径,建议使用双引号 包裹。<Directory ...>: 这部分是对目录的权限设置,非常重要。AllowOverride All: 允许使用.htaccess文件来覆盖配置。Require local: 只允许本机访问,这是一个安全设置,如果你想允许局域网其他电脑访问,可以改为Require all granted。
-
保存
httpd.conf文件。
第 4 步和第 5 步
与方法一完全相同:重启 Apache 服务 和 测试。
常见问题与解答 (FAQ)
Q1: 为什么我访问 www.site1.com 时,看到的是 "It works!" 页面?
A: 这说明 Apache 没有正确识别你的虚拟主机配置,这通常有两个原因:
hosts文件未配置:检查你的电脑hosts文件是否正确添加了域名和0.0.1的映射。- Apache 配置错误:检查 EasyPHP 的
httpd.conf文件或图形界面配置,确保ServerName和DocumentRoot都正确无误,重启 Apache 后再试。
Q2: 为什么我访问 www.site1.com 时,浏览器提示 "ERR_CONNECTION_REFUSED"?
A: 这说明你的电脑甚至没有连接到 Apache 服务器,最可能的原因是:
- EasyPHP 没有启动:检查任务栏右下角是否有 EasyPHP 图标,并确保 Apache 服务是绿色的“运行中”状态。
- 防火墙阻止:Windows 防火墙可能阻止了 EasyPHP 的网络连接,尝试暂时关闭防火墙进行测试,如果可以,则为 EasyPHP 添加防火墙例外。
Q3: 我想使用不同的端口怎么办?
A: 你可以在 httpd.conf 中修改 Listen 指令,或者在 <VirtualHost> 标签中指定端口,让 Site 1 使用 8080 端口:
Listen 8080
<VirtualHost *:8080>
ServerName www.site1.com:8080
DocumentRoot "C:/EasyPHP/www/site1"
# ... 其他配置
</VirtualHost>
访问时就需要使用 http://www.site1.com:8080。
Q4: 我想使用 HTTPS (SSL) 怎么办?
A: EasyPHP 自带 XAMPP 的 openssl 模块,你需要:
- 为你的域名生成或购买 SSL 证书(可以使用 Let's Encrypt 的免费证书)。
- 在
httpd.conf中加载ssl_module和mod_rewrite模块。 - 配置一个
<VirtualHost *:443>节点,指定SSLEngine on、SSLCertificateFile和SSLCertificateKeyFile等指令。 - 配置 HTTP 到 HTTPS 的重定向,这个配置相对复杂,建议在网上搜索 "EasyPHP SSL 配置" 获取更详细的教程。
希望这个详细的教程能帮助你成功在 EasyPHP 上配置多网站!
