登录宝塔Linux面板,完成环境安装、添加站点、上传代码、配置数据库和伪静态这五步,项目就能成功部署上线。整个过程不需要敲复杂的Nginx配置命令,全程可视化操作,一般新手在半小时内就能跑通第一个项目。
部署前需要准备什么材料
动手之前,先把材料备齐,免得中途卡壳。
- 一台Linux服务器(CentOS 7.x 或 Ubuntu 20.04以上版本均可,国内服务器需要先完成ICP备案)
- 一个已解析到服务器IP的域名(如果用IP访问,可以跳过这步,但生产环境强烈建议用域名)
- 服务器root密码,或者能sudo提权的普通用户
- 项目源码压缩包,或已上传到代码仓库(Git/Gitee)
域名解析建议提前在DNS服务商后台做好A记录,指向服务器公网IP,解析生效需要几分钟到几小时不等,本地ping一下域名能返回服务器IP就代表生效了。
宝塔Linux面板安装与环境初始化
宝塔面板有官方的一键安装脚本,不同系统命令略有差异,CentOS使用:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_1.0.sh && bash install.sh
Ubuntu/Debian使用:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
安装过程大约需要2-5分钟,完成后屏幕会展示面板地址、默认用户名和密码,记下这些信息,第一次登录时需要修改默认账号密码。
登录面板后,系统会弹出推荐安装环境的选择框,根据项目类型来选:
| 项目类型 | 推荐环境组合 | 说明 |
|---|---|---|
| PHP项目(WordPress、Laravel) | LNMP(Nginx+MySQL+PHP) | 兼容性最好,性能均衡 |
| Java项目(Spring Boot、Jar包) | 只需Nginx + 手动安装JDK | 面板环境只负责转发请求 |
| Python项目(Django、Flask) | Nginx + Python项目管理器 | 使用面板的Python模块管理 |
| 静态网站(HTML、Vue打包文件) | Nginx即可,不需要数据库 | 最简单,纯静态文件托管 |
行业共识认为,LNMP组合是最常用的部署选项,新手直接装LNMP就行,里面包含了Nginx、MySQL、PHP-FPM三大件,覆盖大部分场景。
添加站点并上传项目代码
环境装好后,进入面板首页就能看到站点管理入口,这里把宝塔面板部署网站的完整流程拆开讲,一步步来。
创建站点并绑定域名
点击左侧菜单的网站,再点添加站点,在弹出的表单里填写:
- 域名:填你的域名,比如
www.example.com,如果需要同时支持不带www的域名,两个都填上,用空格分隔 - 根目录:默认会生成
/www/wwwroot/你的域名,保持默认即可 - 创建数据库:PHP项目建议勾选,自动生成一个MySQL数据库,Java或静态项目可以不勾
- PHP版本:选你项目要求的版本,面板里可以装多个PHP版本切换
提交后,面板会自动创建站点目录和对应的Nginx配置,此时用浏览器访问域名,能看到宝塔的默认欢迎页,就说明站点已经正常工作了。
上传代码的三种方式
代码上传根据开发环境不同,有几种常见姿势:
压缩包上传解压(最常用)
本地把项目压缩成zip包,打开宝塔的文件菜单,进入站点根目录,点击上传,选中zip包上传,上传完成后右键压缩包,点解压,然后把文件移动到根目录下,注意Linux权限问题,目录权限设置为755、文件设置为644比较稳妥。
从Git仓库拉取
如果项目在GitHub、Gitee上,服务器上安装好Git后,在文件管理里打开根目录,使用终端面板执行:
git clone https://gitee.com/你的仓库地址/项目名.git .
拉取到本地后,切换分支、更新代码都很方便,后续上线迭代也用这套流程,生产环境建议使用部署密钥或Personal Access Token,避免账号密码泄露。
宝塔远程同步插件
对于多台服务器同步或跨机房部署的场景,宝塔应用商店里有免费的宝塔同步工具,配置好目标服务器信息后,可以实现目录级别的自动同步,这个场景适合项目访问量较大、需要多节点部署的情况。
设置站点运行目录
ThinkPHP、Laravel这类框架的入口文件在public子目录,如果你的项目也是这样,进入网站设置,找到网站目录页签,把运行目录指向/public,同时关闭防跨站攻击功能(open_basedir),否则会出现权限报错。
数据库创建与导入
PHP项目基本离不开数据库,在面板的数据库菜单里,点击添加数据库,填写数据库名、用户名、密码,字符集选择utf8mb4(兼容emoji和中文)。
如果之前有本地数据库备份SQL文件,添加完成后进入phpMyAdmin(面板自带),选择你的数据库,点击导入,上传SQL文件执行,也可以使用命令行导入:
mysql -u数据库用户名 -p密码 数据库名 < /www/wwwroot/你的站点/backup.sql
导入完成后,找到项目的.env或数据库配置文件,把数据库连接信息替换成刚才创建的账号,这一步很容易漏,改完后记得重启一下PHP服务让配置生效。
伪静态规则与Nginx配置
配置伪静态
大部分框架都依赖伪静态重写,在网站设置里切换到伪静态页签,宝塔内置了常用框架的规则模版,比如ThinkPHP、Laravel、WordPress,直接下拉选中保存即可。
如果你的框架不在列表里,可以参考官方文档手动添加,一般只需要把URL重写到index.php入口文件,配置错误的表现是除首页外其他页面全部404,这时候优先检查伪静态规则。
设置SSL证书
HTTP时代已经过去,部署HTTPS是标配操作,在网站设置的SSL页签里,选择Let’s Encrypt免费证书,勾选你的域名,申请成功后自动部署。
证书类型对比:
| 证书类型 | 成本 | 适用范围 |
|---|---|---|
| Let’s Encrypt | 免费 | 小型站点、测试环境,90天自动续期 |
| 简米云免费证书 | 免费 | 国内服务器,一年有效期 |
| 商业付费证书 | 几百至数千元/年 | 电商、金融、政企网站 |
证书部署后,开启右上角的强制HTTPS开关,所有HTTP请求自动跳转到HTTPS,浏览器地址栏的小锁标志出现,就说明配置成功了。
部署后的验证与常见问题排查
确认服务正常启动
项目部署好后,访问域名测试各个页面,同时看一眼面板首页的资源监控,CPU和内存占用在正常范围就问题不大。
如果页面显示502 Bad Gateway,常见原因有:
- PHP-FPM进程未启动,去服务里手动启动
- 运行目录配置错误,检查public路径
- PHP版本与项目要求不符,切换到正确的版本
显示504 Gateway Timeout则是后端服务响应超时,Java项目或Python项目要检查对应的服务进程是否存活,可以执行ps aux | grep java或ps aux | grep gunicorn来确认。
日志排查法
面板的网站菜单里点击站点名称,可以看到访问日志和错误日志,日志文件位于/www/wwwlogs/目录下,错误日志是排查问题的第一手资料,看日志时关注PHP报错信息和Nginx的状态码,比盲目搜索有针对性得多。
Q&A:宝塔Linux面板部署项目常见疑问
宝塔部署项目需要熟悉Linux命令吗?
基础操作完全不需要,面板的可视化界面覆盖了文件管理、数据库、站点配置等绝大多数场景,但掌握基本的cd、ls、vim命令,会看日志文件,能让你在遇到问题时多一条排查路径,生产环境上出了问题,最终还是要靠命令行解决的。
宝塔部署网站后备案号怎么放?
国内服务器部署的域名必须备案,同时要在网页底部添加备案号并链接到工信部备案系统(beian.mit.gov.cn),宝塔面板本身不自动添加备案信息,需要你在网站页脚手工加上这段文字,未按规定展示备案号,接入商检测到后会暂停域名解析服务。
一个服务器可以部署多个项目吗?
可以,每个站点独立绑定不同域名或端口,共用一个服务器资源,宝塔支持创建任意数量的站点,每个站点有独立的根目录、配置文件和日志,需要注意服务器的内存和带宽是否够用,PHP-FPM进程和数据库连接数都有上限,项目多了之后要留意资源占用情况,部署多个项目的配置文件和SSL证书都是独立的,互不影响。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/797606.html


