双击.php文件打不开,因Windows默认不将其识别为可执行程序;需将PHP路径加入系统PATH、配置文件关联(assoc/ftype)、确保PATHEXT含.PHP,并区分CLI与Web模式的独立配置。

直接双击 .php 文件打不开,不是 PHP 本身坏了,而是 Windows 默认没把它当可执行程序处理——你得明确告诉系统“用 php.exe 来跑它”,而且得让这个命令在任意位置都能被找到。
php -v 报错:“不是内部或外部命令”
这是最常见拦路虎,说明系统根本找不到 php.exe。别急着重装,先确认两点:
- 你解压的 PHP 包里确实有
php.exe(通常在根目录下,不是php-win.exe) -
C:\php(或你实际放 PHP 的路径)已加进系统Path环境变量,且没拼错、没漏反斜杠 - 改完环境变量后,必须关掉再重开命令提示符(cmd 或 PowerShell),
php -v才会生效
验证方式:在任意文件夹下打开 cmd,输入 where php —— 如果返回路径,说明 PATH 成功;如果空白,就还得回去检查。
浏览器访问 localhost 显示 500 错误或空白页
这基本等于 Web 模式和 CLI 模式搞混了。Apache/Nginx/IIS 启动时加载的 php.ini 和你在命令行里看到的不是同一个文件。
立即学习“PHP免费学习笔记(深入)”;
- 运行
php --ini查命令行用的配置路径 - 在浏览器里访问
phpinfo()页面,找 “Loaded Configuration File” 这一行,才是 Web 模式真正读的php.ini - 常见坑:Web 模式下
extension_dir写成相对路径(如"ext"),而实际需要绝对路径,比如"C:/php/ext" - 扩展启用后仍报
Call to undefined function mysqli_connect()?十有八九是 Web 模式下的php.ini没开对应 extension,或者 DLL 文件根本不在ext/目录里
想双击就运行 PHP 脚本,怎么配?
Windows 允许把 .php 当成可执行类型,但要手动注册,不能只靠关联“打开方式”。关键三步:
- 以管理员身份运行 cmd,执行:
assoc .php=phpfile - 接着执行:
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2(路径替换成你的真实 PHP 路径) - 确保
PATHEXT环境变量里包含.PHP(不是小写,Windows 区分大小写)
配完之后,双击 test.php 就会调用 php.exe 执行,输出直接弹 CMD 窗口。注意:这种模式下不走 Web 服务器,没有 $_SERVER 变量,也不能用 echo "hello"; 输出 HTML 到浏览器——它就是纯 CLI。
php -S localhost:8000 启动后访问不了
内置服务器默认只监听 localhost,不接受局域网其他设备访问。如果你在手机上试 http://你的电脑IP:8000 打不开,不是网络问题,是 PHP 默认限制。
- 启动时显式绑定到所有接口:
php -S 0.0.0.0:8000 - Windows 防火墙可能拦截该端口,需手动放行(入站规则 → 新建规则 → 端口 → TCP 8000)
- 路由文件
router.php必须返回true或false,否则 404;它不自动加载,得用php -S localhost:8000 router.php显式传参
最后提醒一句:PHP 在 Windows 上从来不是“装完就能跑”。CLI 和 Web 是两套独立配置体系,php.ini 位置、扩展加载、甚至 DLL 依赖都可能不同。别指望改一个文件就全好,得按场景分别验证。



















