Windows 11执行php think命令报错的本质原因是PHP环境未配置、项目路径错误或think文件权限/调用方式不当;需先确认php -v可用,再确保在项目根目录下用php think(而非直接think)执行,且vendor/autoload.php存在可读。

在Windows 11上执行php think命令时提示“Could not open input file: think”或“找不到命令”,本质不是框架坏了,而是PHP环境、项目路径或文件权限三者中至少有一处没对齐——尤其Windows用户常因CMD未识别think文件的可执行标记而卡死在这一步。
确认PHP命令已全局可用
打开PowerShell,输入php -v。若报错'php' 不是内部或外部命令,说明PHP路径未加入系统Path。
按Win+S搜索“环境变量”→点击“编辑系统环境变量”→“环境变量”→在“系统变量”中找到Path→点击“编辑”→“新建”→粘贴PHP安装目录(如D:\phpstudy_pro\Extensions\php\php7.4.3nts)→确定保存。
【必须重启所有已打开的PowerShell/CMD窗口】,否则新Path不生效。
立即学习“PHP免费学习笔记(深入)”;
进入正确目录并验证think文件存在
在PowerShell中执行:cd D:\www\tp6(替换成你实际的项目根目录)。
运行dir think,确认输出中包含think文件(无扩展名)。若不存在,说明composer create-project未成功执行,或你误操作到了app/或public/子目录下。
这一步操作起来很简单,直接把路径复制进cd命令就行,但90%的报错都源于人眼扫了一眼就以为进对了目录。
修复think文件在Windows下的执行权限
方法一:用PowerShell强制赋予执行权
执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser → 然后运行:attrib +x .\think
方法二:绕过文件权限,直接调用解释器
在项目根目录下,不运行think,改用:php think。Windows CMD和PowerShell默认不识别#!/usr/bin/env php声明,所以php think才是唯一可靠写法。
注意:不要在Git Bash或WSL里执行该命令——它们会因路径解析异常导致require __DIR__.'/vendor/autoload.php'失败,报Class 'think\App' not found。
检查vendor/autoload.php是否真实可读
第一步:在PowerShell中运行:Test-Path vendor\autoload.php,返回True才表示文件存在。
第二步:若存在但仍报错,手动执行:php -f vendor\autoload.php。若报错failed to open stream,说明PHP无法读取该路径——大概率是PHP配置中禁用了allow_url_include或open_basedir限制过严。
第三步:最简验证法——在项目根目录新建test.php,内容为:<?php require 'vendor/autoload.php'; echo 'OK'; ?>,然后执行:php test.php。输出OK即证明autoload机制正常。



















