ThinkPHP搭建服务器环境核心三要素是PHP 8.0(禁用8.3+)、Web服务器(Nginx/Apache)和Composer,顺序不可颠倒:先装PHP并启用fileinfo、openssl、mbstring、pdo_mysql、redis扩展,再配置Web服务器指向public目录,最后用composer create-project初始化项目。

ThinkPHP搭建服务器环境,核心就三样:PHP 8.0(严格禁用8.3+)、Web服务器(Nginx或Apache)、Composer。缺一不可,顺序不能乱——先装好PHP并启用关键扩展,再配Web服务指向public目录,最后用Composer初始化项目。不是装上就能跑,版本错、目录错、规则错,轻则白屏404,重则502报错。
PHP 8.0必须装齐这5个扩展
ThinkPHP 6/8对PHP版本和扩展有硬性要求,不能凑合:
- 必须用PHP 8.0(非最新版),宝塔软件商店里手动选装,禁用8.3及以上版本;
- 安装后进PHP设置 → 扩展管理,勾选并启用:fileinfo、openssl、mbstring、pdo_mysql、redis;
- 扩展装完务必点击「重启PHP服务」,否则不生效;
- Windows本地部署时,要编辑
php.ini,取消这5行前的分号,并确认php -m | findstr "mbstring openssl"能输出结果; - CLI命令行PHP版本和Web端必须一致,执行
where php(Windows)或which php(Linux/macOS)比对路径,避免终端调用旧版PHP。
Web服务器必须指向/public目录
ThinkPHP是单入口框架,index.php只在public/下。若根目录设错,会暴露.env、config/,且所有路由失效:
- 宝塔面板:添加站点后,点「设置」→「网站目录」→ 运行目录填 /public(开头带斜杠),勾选「重载Nginx配置」;
- Nginx伪静态规则(站点设置 → 伪静态)粘贴标准写法:
location / { try_files $uri $uri/ /index.php?$query_string; } - Apache需确保
DocumentRoot指向/path/to/project/public,且对应<Directory>块中AllowOverride All已启用; - 本地开发偷懒法:
php think run自动启动内置服务器,或用php -S localhost:8000 -t public/(注意-t public/不能漏)。
用create-project初始化项目,别用require
composer require topthink/think只拉核心类库,没有public、app、think脚本和路由系统,必报Class 'think\App' not found或404:
立即学习“PHP免费学习笔记(深入)”;
- 新建一个纯英文、无空格、无中文的空文件夹(如
D:\tp8); - 进入该目录,执行:
composer create-project topthink/think .(末尾句点代表当前目录); - 想指定版本加
@8.0后缀:composer create-project topthink/think tp8@8.0; - 项目生成后,
think文件在根目录,Linux/macOS需加执行权限:chmod +x think; - 首次运行前删掉
runtime/缓存目录,并确保.env中APP_DEBUG=true已取消注释,否则错误静默吞掉只留白屏。
.env配置生效的关键细节
.env优先级高于PHP配置文件,但改了不清理缓存、不重启进程等于没改:
-
.env必须放在项目根目录(和think脚本同级),不是public/或app/下; - 数据库配置用扁平格式:
DB_HOST=127.0.0.1、DB_NAME=tp8,不是database.host嵌套写法; - 修改后必须清空
runtime/cache/目录(可直接删整个runtime文件夹); - 若用
php think run,Ctrl+C停掉再重跑;若用PHP-FPM,需sudo systemctl reload php-fpm; - 国内建议配置阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。



















