核心是三点:用对命令、目录设对、配置写对。必须用composer create-project创建完整项目,web服务器指向public目录,.env放根目录并清缓存,php≥8.0且mbstring/openssl/pdo_mysql/fileinfo扩展全启用。

新手搭建ThinkPHP开发环境,核心就三点:用对命令、目录设对、配置写对。跳过任何一步都可能卡在白屏、404或Class not found上。
第一步:用create-project创建完整项目(不是require)
这是最常被忽略的关键动作。ThinkPHP不是“装一个包”,而是一个带入口、路由、命令行脚本的完整项目结构。
- 在空白文件夹里执行:composer create-project topthink/think tp8(tp8是你的项目文件夹名,可自定义)
- 想指定版本?加@8.0后缀:composer create-project topthink/think tp8@8.0
- 别在已有Laravel/Symfony项目里硬塞ThinkPHP——自动加载和生命周期不兼容
- 如果提示“command not found”,先运行composer --version确认Composer已安装并加入系统PATH
第二步:Web服务器必须指向public目录
ThinkPHP是单入口框架,所有请求都要经过public/index.php。根目录设错=敏感文件泄露+启动失败。
- Apache:虚拟主机DocumentRoot必须设为/path/to/tp8/public,且确保AllowOverride All启用(否则.htaccess不生效)
- Nginx:server块中root指向/path/to/tp8/public,并配置try_files $uri $uri/ /index.php?$query_string;
- 开发阶段偷懒?直接用内置服务器:php think run(自动监听127.0.0.1:8000,无需额外配置)
- 千万别把整个项目拖进XAMPP的htdocs!否则.env和config/会被直接访问
第三步:正确配置.env并清缓存
.env是ThinkPHP实际生效的配置文件,优先级高于config/下的PHP文件。新手常改错地方,导致数据库连不上、错误不显示。
- .env必须放在项目根目录(和think脚本同级),不能放public/或app/下
- 取消注释这两行:APP_DEBUG=true(否则错误静默)、DB_TYPE=mysql等数据库参数
- 修改后必须清空runtime/cache/目录,否则旧配置仍被缓存
- 国内网络慢?提前配阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
第四步:检查PHP版本和必需扩展
ThinkPHP 8要求PHP ≥ 8.0,且几个扩展缺一不可。光有版本号还不够。
- 命令行运行:php -v确认版本;再运行php -m | findstr "mbstring openssl pdo_mysql fileinfo"(Windows)或php -m | grep -E "mbstring|openssl|pdo_mysql|fileinfo"(Linux/macOS)检查扩展是否启用
- 若缺失,在php.ini里去掉对应行前的分号,例如:extension=mbstring、extension=openssl
- Windows用户推荐从windows.php.net下载NTS版PHP 8.2+,解压到C:\php8,再把该路径加入系统Path
- 验证环境是否达标:php -r "echo version_compare(PHP_VERSION, '8.0.0') >= 0 ? 'OK' : 'FAIL';"
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











