ThinkPHP搭建开发环境必须同时满足三个硬性条件:PHP 8.0(严格禁用8.3+)、Web服务器根目录指向public、用composer create-project初始化项目;需启用fileinfo、openssl、mbstring、pdo_mysql、redis五大扩展并重启服务,路径、版本、命令任一出错即导致白屏、404或Class not found。

ThinkPHP搭建开发环境不是装几个软件就行,关键在三个硬性条件必须同时满足:PHP 8.0(严格禁用8.3+)、Web服务器指向public目录、用composer create-project初始化项目。版本错、路径错、命令错,都会导致白屏、404或Class not found。
PHP版本与扩展必须精准匹配
ThinkPHP 6/8要求PHP 8.0.x(如8.0.30),不能用8.3及以上,也不能用7.x凑合。安装后必须启用以下5个扩展,并重启PHP服务:
- fileinfo:用于文件类型识别,路由和上传依赖它
- openssl:保障HTTPS、JWT、加密功能正常
- mbstring:多字节字符串处理,URL解析和编码转换强依赖
- pdo_mysql:数据库操作基础,仅启pdo不启驱动仍会报错
- redis:缓存与会话常用,TP8默认启用Redis缓存驱动
Windows下需编辑php.ini取消对应行前的分号;Linux/macOS用宝塔或命令行启用后务必重启PHP-FPM或Apache。验证方式:php -m | grep -E "mbstring|openssl|pdo"有输出即生效。
Web服务器必须以public为根目录
ThinkPHP是单入口框架,index.php只存在于public/下。若Web根目录设错,会导致.env被直接下载、静态资源404、所有路由失效。
立即学习“PHP免费学习笔记(深入)”;
-
宝塔面板:站点设置 → 网站目录 → 运行目录填
/public(开头带斜杠),勾选重载配置 -
Nginx:root指令必须指向
/path/to/project/public,伪静态规则用标准写法:location / { try_files $uri $uri/ /index.php?$query_string; } -
Apache:DocumentRoot设为
/path/to/project/public,对应<Directory>块中AllowOverride All必须开启 -
本地快速启动:在项目根目录执行
php -S localhost:8000 -t public/(注意-t public/不可省略)
项目初始化必须用create-project命令
别解压ZIP、别手建目录、别用composer require topthink/think——这只会拉核心类库,缺失public、app、think脚本和完整路由结构,必报Class 'think\App' not found。
- 新建纯英文无空格目录,如
D:\tp8或/var/www/tp8 - 进入该目录,运行:
composer create-project topthink/think .(末尾句点代表当前目录) - 指定版本可加后缀:
composer create-project topthink/think tp8@8.0 - Linux/macOS执行
chmod +x think赋予脚本权限,否则php think报Command not found
调试与权限细节不能跳过
环境看似跑通,但常见问题往往卡在细节:
-
.env必须放在项目根目录(与think同级),且APP_DEBUG=true必须取消注释,否则异常被静默吞掉 - 数据库配置用扁平格式:
DB_HOST=127.0.0.1,不是database.host;改完要清空runtime/并重启服务 - CLI和Web端PHP版本必须一致:Windows用
where php,Linux/macOS用which php比对路径,避免终端调用旧版PHP -
runtime/目录需PHP进程用户可读写,Linux建议chown -R www-data:www-data runtime,Windows右键属性→安全→Users组加完全控制



















