虚拟目录是Web服务器将URL路径映射到任意物理目录的配置功能,PHP仅执行文件,不参与映射;需在IIS/Apache/Nginx中配置路径映射与PHP处理器,否则导致404、500或源码下载。

PHP 创建虚拟目录,不是 PHP 自己在代码里“新建一个文件夹”,而是通过 Web 服务器(比如 IIS、Apache、Nginx)配置,把某个 URL 路径(例如 /admin 或 /api)映射到服务器上**另一个物理位置的文件夹**,让访问这个 URL 时,实际加载的是那个位置里的 PHP 文件。
它解决的核心问题
网站主目录(如 C:\inetpub\wwwroot 或 /var/www/html)放不下所有项目,或者不想把敏感目录(如 vendor、.env)暴露在根下。虚拟目录让你可以把不同功能模块、独立后台、第三方工具等,放在任意磁盘路径(比如 D:\apps\admin-tool),再用一个干净的 URL 去访问,就像它是网站的一部分。
关键点:PHP 本身不处理映射,服务器才管
PHP 是脚本语言,只负责执行 .php 文件;谁来决定“用户访问 /xxx 时该去读哪个硬盘上的文件”?是 Web 服务器。所以:
- 配虚拟目录 = 改 Web 服务器配置(不是改 php.ini,也不是写 PHP 代码)
- 必须同时告诉服务器:路径怎么映射 + PHP 文件怎么执行(否则会下载源码、报 404 或 500)
- 常见错误不是“建不成功”,而是建完后
index.php打不开——本质是没配好 PHP 处理程序或权限
举个实际例子
你有个后台系统放在 E:\projects\dashboard,但不想把它挪进网站根目录。通过虚拟目录配置:
立即学习“PHP免费学习笔记(深入)”;
- 用户访问
https://yoursite.com/backstage - 服务器自动转向读取
E:\projects\dashboard\index.php - PHP 正常解析执行,页面照常显示
对外看是统一域名下的子路径,对内是完全独立的物理存放,安全又灵活。



















