thinkphp 6.3 云主机部署需三步:改网站根目录指向 public/、配tp6伪静态规则、关闭调试模式;否则将404或泄露.env。本地安装须带版本约束如"6.3.*",上传前删 runtime 并确保 vendor 完整。

直接在云主机上用 composer create-project 安装 ThinkPHP 6.3 是可行的,但默认安装后不能直接访问,必须做三件事:改运行目录、配伪静态、关调试模式。跳过任一环节,轻则 404,重则 .env 泄露或白屏。
为什么不能直接上传 vendor 目录?
云主机(尤其是宝塔、小皮等面板)大多不提供命令行权限,composer install 无法执行。你必须在本地完整安装好依赖,再把整个项目(含 vendor)打包上传。否则会报 Class 'think\App' not found —— 这不是代码问题,是 vendor 根本没加载。
- 本地安装命令必须带版本约束:
composer create-project topthink/think tp "6.3.*",不能写6.3.0或留空,否则可能拉到非稳定快照 - 上传前务必删除本地
runtime/全部内容,否则服务器上缓存路径冲突,配置不生效 - 检查上传后的
public/下是否有index.php,没有说明解压出错或目录结构被破坏
宝塔面板里最关键的三个设置项
很多人在宝塔里点完“添加网站”就以为完事了,其实真正起作用的是这三项:
-
网站根目录:必须指向项目内的
public/子目录(例如/www/wwwroot/myapp/public),不是项目根目录 -
运行目录:宝塔 7.9+ 新增字段,填
/即可(旧版面板需手动在 Nginx 配置里加root /www/wwwroot/myapp/public;) -
伪静态:选 ThinkPHP 6,或粘贴以下规则(避免选错成 TP5 规则):
if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; }
PHP 版本和扩展踩坑清单
TP6.3 在 PHP 8.3 下能跑,但部分扩展行为已变;官方明确推荐 PHP 8.0,且禁用 8.3+ 的某些特性(如只读类反射)。别贪新。
- 必须启用的扩展:
fileinfo(文件上传校验)、openssl(HTTPS/签名)、mbstring(中文处理)、pdo_mysql(数据库)、redis(缓存) - 宝塔里装完扩展后,一定要点「重启 PHP」,否则扩展不生效,日志里看不到报错,只默默白屏
- 如果用了 Redis Cluster,
phpredis扩展无效,必须换predis/predis并自定义驱动——这点常被忽略,导致缓存连不上却查不到原因
最易被跳过的一步:部署后立刻进宝塔的「网站」→「设置」→「SSL」,强制开启 HTTPS 并勾选「强制 HTTPS」。ThinkPHP 的 session 和 cookie 在 HTTP 下可能因安全策略失效,尤其涉及微信支付回调时,会卡在 redirect 环节不动。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











