虚拟目录是Web服务器为物理路径设置的逻辑别名,用于灵活管理资源、隔离多项目、突破磁盘空间限制并提升安全性;它不真实存在,但通过映射使用户能以简洁URL(如/soft)访问指定物理路径(如D:\myapp)中的内容。

什么是虚拟目录,为什么需要它
虚拟目录不是真实存在的文件夹,而是 Web 服务器为某个物理路径设置的一个“别名”。比如你把项目放在 D:\myapp,但想通过 http://localhost/soft 访问,这个 /soft 就是虚拟目录。它让开发更灵活——不必把所有代码都堆在网站根目录(如 C:\inetpub\wwwroot),也方便多项目隔离、测试不同版本或部署第三方工具。
IIS 下创建并让 PHP 正常运行的关键步骤
在 Windows + IIS + PHP 环境中,建好虚拟目录只是第一步;常见问题如“点开 .php 文件直接下载”或报 500 错误,几乎全是因 PHP 处理程序没正确绑定到该目录。必须手动配置,不能依赖根站点继承。
- 在 IIS 管理器左侧树中,精准选中你的虚拟目录节点(例如 Default Web Site → soft),不是根站点或应用池
- 双击打开“处理程序映射”,右侧点“添加模块映射”
- 填入:
- 请求路径:*.php
- 模块:FastCgiModule(务必从下拉菜单选,手输无效)
- 可执行文件:C:\php\php-cgi.exe(确认路径准确,不是 php.exe)
- 名称:PHP_via_FastCGI_virtual(建议加 _virtual 后缀,避免和根目录映射重名)
- 勾选“仅限脚本”和“验证文件是否存在”
- 点击确定后,刷新页面再试访问 /soft/info.php
权限和基础配置不能漏
即使映射加对了,若系统拒绝读取,PHP 进程照样启动失败。物理路径(如 D:\myapp)必须开放必要权限:
- 右键该文件夹 → “属性” → “安全”选项卡 → 编辑 → 添加用户:IIS_IUSRS 和 IUSR
- 为两者均赋予:读取 & 执行、列出文件夹内容、读取
- 检查 php.ini 中 cgi.fix_pathinfo = 0 是否已设为 0;否则带斜杠的 URL(如 /soft/test.php/abc)可能触发 500 或空白页
Apache 用户怎么配(简明版)
如果你用的是 Apache(如 XAMPP、phpStudy),操作更轻量,重点在 httpd.conf 或虚拟主机配置里加两行:
- 启用 mod_alias 模块(确保配置文件中有 LoadModule alias_module modules/mod_alias.so)
- 在
或主配置末尾加入: Alias /soft "D:/myapp" <directory> Options Indexes FollowSymLinks AllowOverride All Require all granted </directory> - 保存后重启 Apache,即可通过 http://localhost/soft 访问
不需要额外配 PHP 映射——只要 Apache 已全局支持 .php,虚拟目录自动生效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











