FastAdmin系统框架通用操作平滑迁移到新服务器的详细步骤-优雅草卓伊凡

简介: FastAdmin系统框架通用操作平滑迁移到新服务器的详细步骤-优雅草卓伊凡

FastAdmin系统框架通用操作平滑迁移到新服务器的详细步骤-优雅草卓伊凡

我们蜻蜓hr系统采用的后端框架就是fastadmin,因此我们平稳迁移以此为例,为什么要迁移一份是因为有甲方需要。

迁移FastAdmin系统到新服务器需要确保数据完整性和系统功能正常。以下是完整的迁移流程:

一、迁移前准备工作

1. 原服务器备份

数据库备份:

# 进入MySQL命令行
mysqldump -u用户名 -p 数据库名 > fastadmin_backup.sql
# 输入密码后会将数据库导出到当前目录的fastadmin_backup.sql文件

手动备份了一份

文件备份:

# 打包整个FastAdmin项目目录(排除不必要的缓存文件)
tar -czvf fastadmin_backup.tar.gz --exclude=runtime/* /path/to/fastadmin

2. 新服务器环境准备

  • 确保新服务器满足FastAdmin运行要求:
  • PHP 7.1+(建议7.3+)
  • MySQL 5.5+
  • 安装必要的PHP扩展(pdo_mysql, mbstring, gd, curl等)
  • 在宝塔面板中:
  1. 创建新网站
  2. 创建MySQL数据库(记下数据库名、用户名和密码)
  3. 配置PHP版本(与旧服务器一致或更高)
  4. 设置伪静态(选择ThinkPHP规则)

二、迁移步骤

1. 文件迁移

方法一:直接上传压缩包

  1. 将原服务器的fastadmin_backup.tar.gz上传到新服务器
  2. 解压到网站根目录:
tar -xzvf fastadmin_backup.tar.gz -C /www/wwwroot/新网站目录/

新解析了域名,新建一个目录,新建了一个服务

整体复制粘贴解压,

方法二:使用rsync同步(适合服务器间直接传输)

rsync -avz -e ssh /path/to/fastadmin 新服务器IP:/www/wwwroot/新网站目录/

2. 数据库迁移

  1. fastadmin_backup.sql上传到新服务器
  2. 导入数据库:
mysql -u新数据库用户名 -p 新数据库名 < fastadmin_backup.sql

这里其实我们用宝塔就没那么复杂

3. 配置文件调整

  1. 修改.env文件:
cd /www/wwwroot/新网站目录/
cp .env.example .env
nano .env

更新以下配置:

APP_DEBUG = false
[DATABASE]
TYPE = mysql
HOSTNAME = 新数据库地址(通常为127.0.0.1)
DATABASE = 新数据库名
USERNAME = 新数据库用户名
PASSWORD = 新数据库密码
HOSTPORT = 3306
  1. 修改config/database.php(如果存在):
'hostname' => '新数据库地址',
'database' => '新数据库名',
'username' => '新数据库用户名',
'password' => '新数据库密码',

因为我们是迁移的,而且并且我们的情况就是 2情况


我在想版本是不是太老了

4. 目录权限设置

chmod -R 755 /www/wwwroot/新网站目录/runtime/
chmod -R 755 /www/wwwroot/新网站目录/public/uploads/

直接复制的没有太大问题

三、迁移后检查与测试

1. 基础检查

  1. 检查文件完整性:
ls -l /www/wwwroot/新网站目录/
# 确保关键目录存在:application, public, runtime, config等
  1. 检查数据库连接:
php think version
# 能正常显示版本号说明数据库连接正常

2. 功能测试

  1. 访问前台页面:http://新域名/
  2. 访问后台页面:http://新域名/admin
  • 使用原管理员账号登录测试
  1. 测试关键功能:
  • 内容管理(CRUD操作)
  • 文件上传功能
  • 插件功能(如果有安装插件)

3. 缓存清理

# 清除缓存
php think clear
# 或手动删除
rm -rf runtime/cache/*
rm -rf runtime/temp/*

这一步是必须的,我手动删的

最终完成,必须先早点睡觉了

四、常见问题解决

1. 页面显示404错误

  • 检查宝塔面板伪静态设置是否正确(ThinkPHP规则)
  • 检查.htaccessnginx.conf配置

2. 数据库连接失败

  • 检查.env文件中的数据库配置
  • 确认数据库用户有远程连接权限(如果是远程数据库)
  • 测试数据库连接:
mysql -u用户名 -p -h 主机名 数据库名

3. 文件权限问题

  • 确保运行PHP的用户(通常是www)对项目目录有读写权限
chown -R www:www /www/wwwroot/新网站目录/

4. 插件不工作

  • 重新安装或更新插件
  • 检查插件目录权限
  • 查看runtime/log中的错误日志

五、最终优化

  1. 禁用安装入口
mv install.php install.php.bak
  1. 更新配置
  • 检查config/app.php中的域名配置
  • 更新CDN、第三方API等配置
  1. 设置定时任务(如果有):
  • 将原服务器的定时任务迁移到新服务器
  1. 监控设置
  • 设置新服务器的错误日志监控
  • 配置性能监控

六、回滚方案

如果迁移出现问题,可以按照以下步骤回滚:

  1. 备份新服务器上的失败版本
  2. 恢复原服务器的备份文件
  3. 重新检查迁移步骤

可以完整、平滑地将FastAdmin系统迁移到新的服务器和宝塔面板环境中,确保数据不丢失、功能正常运行。

相关文章
|
19天前
|
2025年10大主流开源协议全解析与开源战略的商业价值-优雅草卓伊凡
2025年10大主流开源协议全解析与开源战略的商业价值-优雅草卓伊凡
193 8
Django集成Swagger全指南:两种实用方案详解
本文介绍了在 Django 项目中集成 Swagger 的两种主流方案 —— drf-yasg 和 drf-spectacular,涵盖安装配置、效果展示及高级用法,助力开发者高效构建交互式 API 文档系统,提升前后端协作效率。
51 5
企业级DataAgent: 从数据开始,以数据领先
在数字化转型背景下,数据被视为“新时代的石油”,但多数企业仍面临数据价值难以高效挖掘的困境。文章深入剖析了当前数据分析中存在的“被动响应”模式及其带来的四大挑战,并提出通过Data Agent实现主动智能与数据分析民主化的新路径。Data Agent基于大语言模型和强化学习技术,具备理解、思考与行动能力,能够从“人找数据”转变为“数据找人”,推动数据洞察从专业人员走向全员参与。
uniapp发布快应用失败报错Error: ENOENT: no such file or directory以及hap-chimera-toolkit问题优雅草卓伊凡
uniapp发布快应用失败报错Error: ENOENT: no such file or directory以及hap-chimera-toolkit问题优雅草卓伊凡
101 2
uniapp发布快应用失败报错Error: ENOENT: no such file or directory以及hap-chimera-toolkit问题优雅草卓伊凡
加工进化论:SPL 一键加速日志转指标
日志服务 SPL 推出 pack-fields、log-to-metric、metric-to-metric 三大算子:pack-fields 通过智能字段聚合与正则修剪构建紧凑 JSON 结构;log-to-metric 通过标签编码将日志转为标准时序数据;metric-to-metric 实现时序数据二次加工,支持标签增删改与格式调整。三大算子通过内存优化、并行架构革新,Hash 写入策略优化,实现10倍的性能突破,完善数据从日志到指标的全链路处理能力。
168 10
Tomcat启动错误:组件启动失败StandardEngine[Catalina].StandardHost[localhost].StandardContext[]
解决此类问题需要系统地排查和分析,有时候甚至需要根据应用的具体情况定制化解决方案。注意的是,如果问题涉及到复杂的应用逻辑或第三方库,那么可能需要深入到具体的应用代码和库文档中查找原因。最后,保持软件环境的更新也是预防这类问题的好习惯,因为新版本的软件通常会修复旧版本中的已知错误。
94 12
updateByPrimaryKeySelective()方法因字段为null导致的更新不成功问题解决办法
为了让这个解决方案更容易融入到现有系统中,其实现应该尽量简单且无缝,避免重复代码,并提高代码复用性。结合上述方法中提供的策略,应可以解决在使用 `updateByPrimaryKeySelective()`方法时因字段为null导致的更新不成功问题。请根据实际业务需求和上下文选择最合适的方案。这样的解决方案能够达到更佳的代码质量和维护性。
70 14
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
66 14
【Docker项目实战】使用Docker部署dufs文件服务器
【Docker项目实战】使用Docker部署dufs文件服务器
124 16
【Docker项目实战】使用Docker部署dufs文件服务器
2025高效开发:3个被低估的CSS黑科技
2025高效开发:3个被低估的CSS黑科技
148 95
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等