最稳路径是「先装环境、再建站点、最后传文件」,需严格匹配PHP版本(如WordPress用7.4、Laravel9+用8.1+)、根目录以/www/wwwroot/开头不带尾斜杠、默认文档含真实首页名、目录权限设为www:www且755,多项目须单独指定站点PHP版本。

直接上结论:PHP项目在云服务器上部署,用宝塔面板最稳的路径是「先装环境、再建站点、最后传文件」,跳过任一环节都可能遇到 502 Bad Gateway、File not found 或首页空白——尤其是新手常卡在 PHP 版本没选对、根目录权限不对、默认文档没配全这三处。
怎么选 PHP 版本和 Web 服务器?
不是越新越好,得看你的项目实际依赖。WordPress、Typecho、老版 ThinkPHP 推荐 PHP-7.4;Laravel 9+ 或 Hyperf 建议 PHP-8.1 或 PHP-8.2;纯静态 HTML 可不装 PHP,但一旦有 index.php 就必须匹配。
Web 服务器选 Nginx 还是 Apache?
-
Nginx更轻量,高并发下更稳,但伪静态规则写法和 Apache 不同(比如 Laravel 的try_files规则不能直接套用 .htaccess) -
Apache对新手更友好,.htaccess 生效快,但内存占用略高,512MB 内存服务器建议优先选 Nginx - 宝塔里切换 Web 服务不需要重装,但切换后要进站点设置 → 配置文件 → 手动检查或重载伪静态规则
添加站点时根目录和域名怎么填才不出错?
根目录路径必须以 /www/wwwroot/ 开头,结尾不能带斜杠;如果填成 /www/wwwroot/myapp/,上传文件后实际路径是 /www/wwwroot/myapp//(双斜杠),部分模块会报错。
立即学习“PHP免费学习笔记(深入)”;
域名填写要注意这些细节:
- 本地测试填
127.0.0.1或服务器 IP 即可,但浏览器访问时必须带端口(如http://192.168.1.100:80),否则走的是本地 80 端口 - 正式域名要提前在 DNS 解析 A 记录指向服务器 IP,否则宝塔能建站,但外网打不开
- 多个域名换行填,不要用逗号或空格分隔;泛域名写
*.example.com,注意前面的星号和点不能漏 - 如果要用非标端口(如
8080),必须写成www.example.com:8080,且云服务商安全组要放行该端口
上传文件后为什么还是 403 或 404?
90% 是因为这三个配置没调好:
-
默认文档里没包含你的真实首页名,比如项目用home.php,但默认文档只写了index.html index.php,就得手动加上 - 文件上传到了子目录(如
/www/wwwroot/myapp/wordpress/),但根目录设的是/www/wwwroot/myapp/,结果访问时找不到index.php - 权限问题:
/www/wwwroot/下的站点目录属主不是www用户,宝塔默认用www用户跑 PHP 进程,目录不可读就直接 403
快速修复命令(SSH 登录后执行):
chown -R www:www /www/wwwroot/myapp chmod -R 755 /www/wwwroot/myapp
数据库和 FTP 是必须开的吗?
不是必须,但强烈建议勾选:
- FTP 账号生成后,可用 FileZilla 直连上传,比宝塔网页端上传大文件(>100MB)更可靠,断点续传也支持
- MySQL 数据库必须开,除非你项目完全不用数据库(比如纯 API 前端 + JSON 文件);CMS 类项目(WordPress、Dedecms)安装时会强制要求填数据库信息
- 注意:数据库名、用户名只能用英文+数字+下划线,不能含短横线(
-)或中文,否则建站提交会失败
真正容易被忽略的是:建站完成后,PHP 版本 是全局绑定的,但每个站点可以单独指定不同版本——这点在多项目共存时特别关键,别只看软件商店里装了什么,还得进单个站点的 PHP 设置页确认。



















