PHP虚拟目录由Web服务器(如IIS)创建,需三步配置:①在IIS中添加虚拟目录映射URL路径到物理路径;②为该目录单独配置FastCgiModule处理.php请求;③设置文件夹权限、php.ini(cgi.fix_pathinfo=0)并测试,框架还需Web.config重写规则。

PHP 本身不创建虚拟目录,真正创建和配置虚拟目录的是 Web 服务器(如 IIS、Apache 或 Nginx)。所谓“PHP 虚拟目录”,其实是让服务器把某个 URL 路径(比如 /myapp)映射到服务器上一个非网站根目录的物理路径(比如 D:\projects\myapp),并确保其中的 .php 文件能被正确解析执行——而不是被下载或报错。
第一步:在 IIS 里添加虚拟目录(最常见场景)
打开 IIS 管理器 → 展开左侧网站(如 Default Web Site)→ 右键 →「添加虚拟目录」→ 填写:
-
别名:浏览器中访问的路径名,例如
soft(访问地址就是http://localhost/soft/) -
物理路径:你本地存放 PHP 文件的真实文件夹,例如
D:\myapp(注意:路径不能含中文、空格或特殊符号)
点确定完成创建。此时只是“映射成功”,.php 还不能运行。
第二步:手动加 PHP 处理程序(关键!90%失败卡在这)
在 IIS 管理器中,必须选中你刚建的虚拟目录节点(不是根站点!),再双击「处理程序映射」→ 右侧「添加模块映射…」→ 填写:
-
请求路径:
*.php -
模块:从下拉菜单选
FastCgiModule(手输无效) -
可执行文件:填你的
php-cgi.exe绝对路径,例如C:\php\php-cgi.exe -
名称:建议起个唯一名,如
PHP_via_FastCGI_soft - 勾选「仅限脚本」和「验证文件是否存在」
点确定后,该虚拟目录下的 PHP 就能正常执行了。
第三步:检查权限和基础配置
缺一不可:
-
文件夹权限:右键物理路径文件夹(如
D:\myapp)→「属性」→「安全」→ 添加用户IIS_IUSRS和IUSR,赋予「读取 & 执行」权限 -
php.ini 设置:确认
cgi.fix_pathinfo = 0(不是 1),否则带斜杠的 URL(如/soft/index.php/test)容易报 500 或空白页 -
测试文件:在
D:\myapp下放一个info.php,内容为,用浏览器访问http://localhost/soft/info.php
补充:如果跑 ThinkPHP/Laravel 等框架
仅加处理程序还不够,还需在虚拟目录根下放一个 Web.config 文件,内容如下(用于重写路由):
<configuration><system.webserver><rewrite><rules><rule name="Rewrite to index.php" stopprocessing="true"><match url="^(.*)$"></match><conditions logicalgrouping="MatchAll"><add input="{REQUEST_FILENAME}" matchtype="IsFile" negate="true"></add><add input="{REQUEST_FILENAME}" matchtype="IsDirectory" negate="true"></add></conditions><action type="Rewrite" url="index.php/{R:1}"></action></rule></rules></rewrite></system.webserver></configuration>
保存后刷新页面,框架路由就能正常工作了。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











