Laragon 是一个功能强大的本地开发环境,特别适合 PHP 和 Web 开发者。它通过简化的虚拟主机管理和自动配置功能,帮助用户快速搭建多个本地网站。本文将详细介绍如何在 Laragon 中添加多个虚拟主机,基于我与用户的交流,涵盖从手动创建文件夹到利用自动功能(如 Quick Create)的全过程,重点解答关于 `{name}.test` 域名、文件夹命名规则以及自动创建文件夹的疑问。
背景:Laragon 虚拟主机简介
在 Laragon 中,虚拟主机(Virtual Host)允许开发者为每个项目分配一个本地域名(例如 `site1.test`),通过浏览器访问本地项目,而无需复杂的服务器配置。Laragon 的 自动创建虚拟主机(Auto-create virtual hosts)功能是其核心优势之一,它可以根据 `C:\laragon\www` 目录下的文件夹自动生成虚拟主机,域名格式为 `{name}.test`,其中 `{name}` 直接来源于文件夹名称。
用户在交流中提到,他们启用了 自动创建虚拟主机,主机名格式为 `{name}.test`,并发现 Laragon 可以在某些情况下自动创建文件夹,但对 `{name}` 与文件夹名的关系、命名规则以及如何高效添加多个虚拟主机存在疑问。以下是基于这些问题的完整指南。
核心概念:{name}.test 和文件夹的关系
1. `{name}.test` 是什么?
`{name}.test` 是 Laragon 为虚拟主机生成的本地开发域名:
- 域名作用:它模拟真实域名,指向本地 IP(`127.0.0.1`),允许通过浏览器访问项目。例如,`site1.test` 对应 `C:\laragon\www\site1` 的内容。
- {name} 的来源:`{name}` 是一个占位符,直接取自 `C:\laragon\www` 下文件夹的名称。例如,文件夹 `site1` 生成 `site1.test`,文件夹 `my-project` 生成 `my-project.test`。
- .test 顶级域名:`.test` 是一个专为本地开发设计的顶级域名(TLD),不会与真实互联网域名冲突。
在 自动创建虚拟主机 模式下,`{name}` 必须与文件夹名称完全一致,因为 Laragon 直接使用文件夹名生成虚拟主机配置文件(例如 `auto.site1.test.conf`)和 `hosts` 文件条目(例如 `127.0.0.1 site1.test`)。
2. 文件夹名与 `{name}.test` 的关系
- 一对一映射:文件夹名直接决定 `{name}`,例如:
- 文件夹 `site1` → 域名 `site1.test`
- 文件夹 `blog` → 域名 `blog.test`
- 一致性要求:在自动模式下,Laragon 不允许 `{name}` 与文件夹名不同,因为虚拟主机配置是基于文件夹名动态生成的。
- 自定义域名:如果需要域名与文件夹名不同(例如,文件夹 `site1`,域名 `mysite.test`),需手动配置虚拟主机(稍后介绍)。
3. 文件夹命名规则
由于文件夹名直接影响域名,需遵循域名规范:
- 有效字符:小写字母(a-z)、数字(0-9)、连字符(`-`)、下划线(`_`)。
- 避免:空格、点(`.`)、斜杠(`/`)、特殊字符(`@`, ``, `%`)、中文或其他非 ASCII 字符。
- 示例:
- 有效:`site1`, `my-project`, `blog2023`
- 无效:`site 1`(空格),`site@1`(特殊字符),`我的项目`(中文)。
- 影响:不合法的文件夹名可能导致 Laragon 无法生成虚拟主机,或生成的域名无法解析。
添加多个虚拟主机的方法
Laragon 提供了两种主要方式来添加多个虚拟主机:自动创建(通过 Quick Create 或手动文件夹) 和 手动配置。以下是详细步骤。
方法 1:通过 Quick Create 自动创建文件夹和虚拟主机
用户提到 Laragon 可以“自动创建文件夹”,这通常是通过 Quick Create 功能实现的。该功能适合快速搭建框架项目(如 Laravel、WordPress),并自动生成文件夹和虚拟主机。
步骤:
1. 打开 Quick Create:
- 在 Laragon 主界面,点击 Menu > Quick Create。
- 选择框架(例如 Laravel、WordPress)或“Empty”项目(如果支持)。
2. 输入项目名称:
- 为每个项目输入名称,例如:
- 第一个项目:`site1`
- 第二个项目:`site2`
- 项目名称将用作文件夹名和 `{name}`。
3. 自动生成:
- Laragon 会在 `C:\laragon\www` 创建文件夹(`site1`、`site2`)。
- 安装框架代码(如果选择了框架)或创建空文件夹。
- 生成虚拟主机:
- `site1.test` 映射到 `C:\laragon\www\site1`
- `site2.test` 映射到 `C:\laragon\www\site2`
- 更新 `hosts` 文件:
```
127.0.0.1 site1.test
127.0.0.1 site2.test
```
4. 重启服务器:
- 点击 Laragon 的 Reload 或 Stop/Start。
5. 测试:
- 在浏览器访问 `http://site1.test` 和 `http://site2.test`。
优点:
- 自动创建文件夹和虚拟主机,简化操作。
- 适合快速搭建框架项目。
注意:
- 项目名称需符合命名规则(字母、数字、连字符)。
- `{name}` 自动等于项目名称(文件夹名)。
方法 2:手动创建文件夹并自动生成虚拟主机
如果需要自定义项目或不使用框架,可以手动创建文件夹,Laragon 的 自动创建虚拟主机 功能会根据文件夹生成虚拟主机。
步骤:
1. 创建文件夹:
- 在 `C:\laragon\www` 创建文件夹,例如:
- `C:\laragon\www\site1`
- `C:\laragon\www\site2`
2. 添加项目文件:
- 在每个文件夹中放入内容,例如:
- `site1/index.php`(`<?php echo "Hello Site1";`)
- `site2/index.html`(`<h1>Hello Site2</h1>`)
3. 自动生成虚拟主机:
- Laragon 检测到文件夹后,生成:
- 配置文件:`C:\laragon\etc\apache2\sites-enabled\auto.site1.test.conf`
- `hosts` 条目:`127.0.0.1 site1.test`
- 同样适用于 `site2`。
4. 重启服务器:
- 点击 Reload 或 Stop/Start。
5. 测试:
- 访问 `http://site1.test` 和 `http://site2.test`。
优点:
- 灵活,适合任何类型项目。
- 无需 Quick Create,内容完全自定义。
注意:
- 文件夹名决定 `{name}`,需符合命名规则。
- 确保 自动创建虚拟主机 已启用(Menu > Preferences > General)。
方法 3:手动配置虚拟主机(自定义域名)
如果需要域名与文件夹名不同(例如,文件夹 `site1`,域名 `mysite.test`),可以手动配置虚拟主机。
步骤:
1. 创建文件夹:
- 例如 `C:\laragon\www\site1`。
2. 创建配置文件:
- 在 `C:\laragon\etc\apache2\sites-enabled` 创建 `manual.mysite.test.conf`:
```apache
<VirtualHost :80>
ServerName mysite.test
DocumentRoot "C:/laragon/www/site1"
<Directory "C:/laragon/www/site1">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
3. 更新 hosts 文件:
- 编辑 `C:\Windows\System32\drivers\etc\hosts`,添加:
```
127.0.0.1 mysite.test
```
4. 重启服务器:
- 点击 Reload 或 Stop/Start。
5. 测试:
- 访问 `http://mysite.test`。
优点:
- 域名灵活,不受文件夹名限制。
- 适合特殊需求。
注意:
- 手动配置文件不要以 `auto.` 开头,以免被覆盖。
- 可禁用 自动创建虚拟主机,完全手动管理。
自动创建文件夹的澄清
用户提到的“Laragon 可以自动创建文件夹”主要指 Quick Create 功能。在普通情况下,Laragon 不会主动在 `C:\laragon\www` 创建项目文件夹,需手动创建或通过以下方式触发:
- Quick Create:输入项目名称,自动创建文件夹并配置虚拟主机。
- 终端命令:如 `composer create-project laravel/laravel myproject`,在 `C:\laragon\www` 创建 `myproject` 文件夹,Laragon 自动生成 `myproject.test`。
- 其他工具:某些 Laragon 插件或脚本可能自动生成文件夹。
如果用户观察到其他自动创建文件夹的场景,可能是使用了类似功能。手动创建文件夹仍是添加虚拟主机的常见方式,尤其适合自定义项目。
常见问题排查
以下是用户可能遇到的问题及解决方法:
- 域名无法访问:
- 确认文件夹存在且包含文件(`C:\laragon\www\site1/index.php`)。
- 检查配置文件(`auto.site1.test.conf`)和 `hosts` 文件(`127.0.0.1 site1.test`)。
- 运行 `ping site1.test`,确保解析到 `127.0.0.1`。
- 检查防火墙或杀毒软件是否阻止端口 80。
- 虚拟主机未生成:
- 确保 自动创建虚拟主机 已启用。
- 检查文件夹名是否合法(无空格或特殊字符)。
- 以管理员身份运行 Laragon(右键 > 以管理员身份运行)。
- Quick Create 失败:
- 确认网络连接(可能需下载框架)。
- 确保项目名称符合命名规则。
- 日志检查:
- 查看 `C:\laragon\logs` 中的 Apache/Nginx 日志,定位错误。
高级功能:SSL 和自定义配置
- 启用 SSL:
- 点击 Menu > Apache > SSL > Enable,为 `.test` 域名生成自签名证书,访问 `https://site1.test`。
- 浏览器可能提示证书不受信任,可手动信任。
- 自定义域名:
- 如方法 3,手动配置虚拟主机,使用任意域名(如 `mysite.local`)。
- 需要更新 `hosts` 文件和重启服务器。
- 多 PHP 版本:
- 在 Menu > PHP > Version 切换 PHP 版本,确保每个虚拟主机使用正确版本。
总结
在 Laragon 中添加多个虚拟主机非常简单,核心在于理解 `{name}.test` 和文件夹的关系:
- 自动模式:启用 自动创建虚拟主机,`{name}` 必须等于文件夹名(手动创建或 Quick Create 生成)。通过 Quick Create 可自动创建文件夹和虚拟主机,手动创建文件夹则更灵活。
- 手动模式:自定义域名需手动配置虚拟主机,适合特殊需求。
- 命名规则:文件夹名需使用字母、数字、连字符,避免无效字符。
- Quick Create:快速创建框架项目,自动生成文件夹和虚拟主机。
通过以上方法,你可以轻松管理多个本地项目,无论是通过 `site1.test`、`site2.test` 访问,还是自定义域名如 `mysite.test`。如果遇到问题,可参考排查步骤或在 Laragon 的 GitHub Discussions(https://github.com/leokhoa/laragon/discussions)寻求帮助。