将原先部署的项目迁移到宝塔面板(BT Panel)是一个常见的运维需求。以下是详细的迁移步骤,适用于常见的 Web 项目(如 PHP、Node.js、Python、Java 等),以确保项目在宝塔环境中正常运行。
一、准备工作
-
确认服务器环境
-
安装宝塔面板(如未安装):
# CentOS yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh # Ubuntu/Debian wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh - 登录宝塔面板后台(默认端口 8888)。
-
-
备份原项目数据
- 备份代码文件、数据库、配置文件、SSL 证书等。
- 常见路径:
- 代码:
/var/www/html、/home/wwwroot等 - 数据库:使用
mysqldump导出 SQL 文件 - 配置文件:Nginx/Apache 配置、
.env、config.php等
- 代码:
-
记录原环境配置
- PHP 版本、MySQL 版本、Nginx/Apache 配置、端口、伪静态规则等。
二、在宝塔中部署项目
1. 添加网站
- 进入宝塔 → 网站 → 添加站点
- 域名:填写你的域名(可多个)
- 根目录:选择或创建目录(如
/www/wwwroot/your-site.com) - PHP 版本:选择与原项目兼容的版本(如 PHP 7.4)
- 数据库:勾选“创建数据库”,填写数据库名、用户名、密码
2. 上传或迁移代码
-
方式一:通过宝塔文件管理上传
- 进入“文件”模块,进入网站根目录
- 删除默认文件,上传你的项目代码(支持 ZIP 上传并解压)
-
方式二:通过命令行(推荐)
cd /www/wwwroot/your-site.com # 使用 scp/rsync/git 等方式上传代码 git clone https://your-repo.git .
3. 恢复数据库
- 进入宝塔 → 数据库 → 找到对应数据库 → 管理
- 使用“导入”功能上传
.sql文件 - 或通过命令行:
mysql -u用户名 -p 数据库名 < backup.sql
4. 配置项目环境
- PHP 项目:
- 检查
config.php或.env文件中的数据库连接信息 - 确保宝塔中 PHP 版本和扩展(如 mysqli、pdo、curl)已开启
- 检查
- Node.js 项目:
- 使用宝塔的“PM2 管理器”或手动部署
- 设置反向指向 Node 服务端口(如 3000)
- Python 项目(如 Django/Flask):
- 使用宝塔的“Python 项目”功能或手动部署
- 配置 Gunicorn + Nginx 反向
5. 配置网站设置
- 进入网站 → 设置
- 伪静态:根据项目框架选择或自定义(如 ThinkPHP、Laravel、WordPress)
- SSL:申请 Let’s Encrypt 证书并启用 HTTPS
- 反向:用于 Node.js、Java(Tomcat)等后端服务
- 默认文档:确保
index.php、index.html等在首位
6. 域名与 DNS
- 确保域名 DNS 已解析到服务器 IP
- 在宝塔中正确填写域名(包括 www 和非 www 版本)
三、权限与安全设置
- 设置网站运行目录权限:
chown -R www:www /www/wwwroot/your-site.com chmod -R 755 /www/wwwroot/your-site.com - 对于可写目录(如
runtime、uploads),设置 755 或 777(谨慎) - 在宝塔“安全”中放行必要端口(如 80、443、项目端口)
四、测试与验证
- 访问域名,检查是否正常加载
- 登录后台、测试数据库连接
- 检查静态资源(CSS/JS)是否加载
- 查看 Nginx/Apache 错误日志(宝塔 → 网站 → 日志)
五、可选优化
- 开启缓存(如 OPcache、Redis)
- 配置定时备份(宝塔计划任务)
- 使用宝塔的“网站监控”功能
示例:迁移一个 Laravel 项目
- 创建网站,PHP 7.4,创建数据库
- 上传代码到根目录
- 修改
.env文件中的数据库配置 - 运行命令(通过宝塔终端):
cd /www/wwwroot/your-site.com composer install php artisan key:generate php artisan config:cache - 设置伪静态:
location / { try_files $uri $uri/ /index.php?$query_string; } - 设置运行目录为
public
注意事项
- 宝塔默认使用
www用户运行网站,注意文件权限 - 某些项目需要开启函数(如
exec、shell_exec),可在 PHP 设置中配置 - 如原项目使用 Apache,宝塔也支持切换为 Apache 环境
完成以上步骤后,你的项目就成功迁移到宝塔面板了。如有具体项目类型(如 WordPress、Vue + Node、Django),可提供细节,我可以给出更具体的迁移方案。
ECLOUD博客