下面我将为你提供一个非常详细、分步的教程,使用 EasyPHP 的图形界面和配置文件两种方法,并附上常见问题解答。


核心概念

在开始之前,你需要理解几个关键概念:

  1. 域名:你为每个网站购买的网址,www.site1.comwww.site2.com
  2. 本地 hosts 文件:在你的个人电脑上,一个没有扩展名的文本文件 (hosts),它的作用是将域名(如 www.site1.com)解析到一个特定的 IP 地址(如 0.0.1,也就是你自己的电脑),这样,你就可以在本地测试这些域名,而无需将域名指向你的真实服务器。
  3. Apache 虚拟主机:Apache Web 服务器的一项功能,允许它根据请求的域名,将用户导向到服务器上不同的网站目录。
  4. EasyPHP 根目录:EasyPHP 默认存放所有网站文件的主文件夹,通常是 C:\EasyPHP\www\

使用 EasyPHP 的图形界面 (推荐新手)

这是最简单、最不容易出错的方法。

第 1 步:准备网站目录

在你的 EasyPHP 根目录(C:\EasyPHP\www\)下,为每个网站创建一个独立的文件夹。

  • C:\EasyPHP\www\site1
  • C:\EasyPHP\www\site2

在每个文件夹里,放入对应的网站文件(index.html)。

  • site1/index.html 内容可以是:<h1>这是 Site 1</h1>
  • site2/index.html 内容可以是:<h1>这是 Site 2</h1>

第 2 步:配置本地 hosts 文件

这一步至关重要,它让你的电脑知道 www.site1.comwww.site2.com 指向的是你自己的电脑。

  1. 找到文件位置:C:\Windows\System32\drivers\etc\hosts

  2. 用管理员权限打开它:右键点击 hosts 文件 -> “打开方式” -> 选择记事本或其他文本编辑器,如果提示权限不足,你需要右键点击记事本程序,选择“以管理员身份运行”,然后再打开 hosts 文件。

  3. 在文件末尾添加以下内容:

    0.0.1    www.site1.com
    127.0.0.1    www.site2.com
    # 127.0.0.1 是你本机的回环地址
  4. 保存文件,系统可能会提示你无法保存,你需要先将文件另存到桌面,然后再复制回原文件夹并覆盖。

第 3 步:在 EasyPHP 控制面板中添加虚拟主机

  1. 启动 EasyPHP。

  2. 在右下角的任务栏右键点击 EasyPHP 图标,选择 Configuration -> HTTP

  3. 这会打开 Apache 的配置文件 httpd.conf别怕,我们不用手动编辑它!

  4. httpd.conf 文件窗口的顶部,点击 Virtual hosts 标签页。

  5. 你会看到一个默认的虚拟主机配置,我们需要添加新的。

  6. 点击 Add a virtual host 按钮。

  7. 在弹出的窗口中填写信息:

    • ServerName: www.site1.com (你的域名)
    • DocumentRoot: C:/EasyPHP/www/site1 (你的网站文件夹路径,请使用正斜杠 )
    • Alias: site1 (可选,一个简短的别名,可以通过 http://localhost/site1 访问)
  8. 点击 OK 保存。

  9. 重复步骤 6-8,为 www.site2.com 添加一个新的虚拟主机,DocumentRoot 设置为 C:/EasyPHP/www/site2

第 4 步:重启 Apache 服务

配置更改后必须重启 Apache 才能生效。

  1. 在 EasyPHP 的任务栏图标上右键点击。
  2. 选择 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 文件

  1. 启动 EasyPHP,右键点击图标 -> Configuration -> HTTP,打开 httpd.conf 文件。

  2. 在文件中找到 <VirtualHost *:80> 部分,EasyPHP 通常会有一个默认的虚拟主机配置,你可以参考它的格式。

  3. 在最后一个 </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
  4. 保存 httpd.conf 文件。

第 4 步和第 5 步

与方法一完全相同:重启 Apache 服务测试


常见问题与解答 (FAQ)

Q1: 为什么我访问 www.site1.com 时,看到的是 "It works!" 页面?

A: 这说明 Apache 没有正确识别你的虚拟主机配置,这通常有两个原因:

  1. hosts 文件未配置:检查你的电脑 hosts 文件是否正确添加了域名和 0.0.1 的映射。
  2. Apache 配置错误:检查 EasyPHP 的 httpd.conf 文件或图形界面配置,确保 ServerNameDocumentRoot 都正确无误,重启 Apache 后再试。

Q2: 为什么我访问 www.site1.com 时,浏览器提示 "ERR_CONNECTION_REFUSED"?

A: 这说明你的电脑甚至没有连接到 Apache 服务器,最可能的原因是:

  1. EasyPHP 没有启动:检查任务栏右下角是否有 EasyPHP 图标,并确保 Apache 服务是绿色的“运行中”状态。
  2. 防火墙阻止: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 模块,你需要:

  1. 为你的域名生成或购买 SSL 证书(可以使用 Let's Encrypt 的免费证书)。
  2. httpd.conf 中加载 ssl_modulemod_rewrite 模块。
  3. 配置一个 <VirtualHost *:443> 节点,指定 SSLEngine onSSLCertificateFileSSLCertificateKeyFile 等指令。
  4. 配置 HTTP 到 HTTPS 的重定向,这个配置相对复杂,建议在网上搜索 "EasyPHP SSL 配置" 获取更详细的教程。

希望这个详细的教程能帮助你成功在 EasyPHP 上配置多网站!