核心是环境稳、目录对、配置准;新手易卡在漏public目录、伪静态未配致404、runtime不可写致白屏,需确保lnmp环境(php7.4+/8.0)、public为网站根目录、nginx加if重写规则、runtime可写且app_debug关闭。

ThinkPHP部署到云服务器,核心是环境搭得稳、目录放得对、配置调得准。新手最容易卡在三处:把整个项目扔进网站根目录(漏了public)、重写规则没配导致404、runtime目录不可写引发白屏。只要避开这几个坑,流程其实很清晰。
一、先配好基础环境(LNMP)
推荐用宝塔面板,不用记命令,点几下就装好Nginx、PHP、MySQL。如果手动部署,注意几点:
- PHP版本选7.4或8.0(ThinkPHP 6.x兼容性最好),必须安装
php-fpm和常用扩展(mbstring、curl、pdo_mysql) - 开启
opcache并确认opcache.enable_cli = 1,否则自动加载会失效,报Class 'think\App' not found - MySQL建库时用
utf8mb4编码,避免emoji存不进去
二、上传项目要认准public目录
ThinkPHP 6+采用入口分离结构,public才是真正的Web根目录。不能把整个项目文件夹直接丢进/www/wwwroot/xxx,否则:
-
.htaccess或Nginx重写规则不生效 - 敏感目录(如
app/、config/)可能被直接访问 - 路由全部404
正确做法:把本地项目的public目录内容上传到网站根目录;其余目录(app、config、runtime等)上传到上一级,比如/www/wwwroot/xxx/下再建一个thinkphp文件夹放它们。
三、Nginx配置必须加重写规则
Apache用户要确保mod_rewrite开启且站点配置中AllowOverride All;Nginx用户必须在server块里加:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
别用try_files,ThinkPHP依赖s=参数解析PATH_INFO。宝塔用户可在站点设置里直接选择“ThinkPHP”伪静态模板,省去手写。
四、关键目录权限与运行配置
部署后常见白屏或500,多数因权限或配置问题:
-
runtime目录必须存在且可写:chmod -R 755 runtime(Linux);Windows主机需确认IIS或Apache用户有写入权限 -
APP_DEBUG上线前务必设为false,同时检查config/app.php里是否用了Env::get('APP_DEBUG', false),而不是硬编码 - 数据库配置写在
.env里更安全,但别把它一起传上去——应通过宝塔的“环境变量”功能或Nginx的fastcgi_param注入
不复杂但容易忽略。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











