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系统迁移到新的服务器和宝塔面板环境中,确保数据不丢失、功能正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915569.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915569.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915569.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Request和Response相关介绍

Request 和 Response 是什么&#xff1f; Request&#xff08;请求对象&#xff09;&#xff1a;用来接收浏览器发过来的数据。 Response&#xff08;响应对象&#xff09;&#xff1a;用来把服务器处理后的结果返回给浏览器。 1. request 的作用&#xff08;获取请求数据&am…

Springboot 实现热部署

spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署&#xff0c;提高开发者的开发效率&#xff0c;无需手动重启Spring Boot应用。引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>s…

虚拟机扩展磁盘容量后扩展分区大小

1. 首先检查磁盘剩余空间sudo fdisk -l /dev/sda2. 如果有未分配空间&#xff0c;直接扩展分区sudo fdisk /dev/sda在fdisk交互界面中&#xff0c;依次写入d # 删除分区 3 # 例如选择分区3&#xff08;/dev/sda3&#xff09; n # 新建分区 p # 主分区 3 # 分区号3 # 起始扇…

元宇宙与游戏:虚实交融的数字文明新纪元

引言&#xff1a;当游戏遇见元宇宙在纽约现代艺术博物馆&#xff08;MoMA&#xff09;的"虚拟世界"特展中&#xff0c;一幅数字艺术作品《元宇宙诞生》引发观展热潮。这幅由AI与人类艺术家共同创作的作品&#xff0c;描绘了游戏《堡垒之夜》的虚拟演唱会与现实世界交…

音视频学习(四十二):H264帧间压缩技术

必要性与优势 原始数字视频数据量庞大&#xff0c;未经压缩的视频难以有效传输和存储。例如&#xff0c;一个 1080p、30fps 的无压缩视频&#xff0c;每秒数据量可达数百兆比特。视频压缩的目标是在保证视觉质量的前提下&#xff0c;最大限度地减少数据冗余。视频数据中存在多种…

微服务雪崩防护最佳实践之sentinel

思考1、当服务访问量达到一定程度&#xff0c;流量扛不住的时候&#xff0c;该如何处理&#xff1f;2、服务之间相互依赖&#xff0c;当服务A出现响应时间过长&#xff0c;影响到服务B的响应&#xff0c;进而产生连锁反应&#xff0c;直至影响整个依赖链上的所有服务&#xff0…

阿里云监控及运维常见问题

云监控介绍&#xff1a;阿里云的云监控服务&#xff08;CloudMonitor&#xff09;是一款简单易用、功能强大的监控工具&#xff0c;主要用来帮助用户实时监控阿里 云上的各种资源&#xff08;比如服务器、数据库、网络等&#xff09;&#xff0c;并在出现问题时及时发出警报&am…

深入解析 vLLM 分布式推理与部署策略

在当今人工智能快速发展的时代&#xff0c;大型语言模型&#xff08;LLM&#xff09;的推理和部署面临着诸多挑战&#xff0c;尤其是当模型规模日益庞大时&#xff0c;如何高效地利用硬件资源成为关键问题。vLLM 作为一种强大的工具&#xff0c;为分布式推理和部署提供了多种策…

PostgreSQL 终端命令详解及实际应用案例

PostgreSQL 作为一款功能强大的开源关系型数据库&#xff0c;其终端命令是数据库管理员、开发人员日常操作的核心工具。这些命令覆盖数据库连接、对象管理、数据操作、备份恢复、权限控制等多个维度&#xff0c;掌握其实际应用场景能显著提升工作效率。本文结合不同行业的实操案…

步进电机基础

1、ENABLE‾\overline{ENABLE}ENABLE 的意思&#xff1a; ENABLE上面的横线表示这是一个低电平有效的信号&#xff1a;当ENABLE信号为低电平&#xff08;0V或逻辑0&#xff09;时&#xff0c;芯片被使能&#xff08;激活&#xff09;当ENABLE信号为高电平&#xff08;VDD或逻辑…

Redis进阶--缓存

目录 一、引言 二、介绍 1.为什么Mysql的速度慢呢&#xff1f; 2.缓存更新策略 1.定期生成 2.实时生成 3.redis的内存淘汰机制 4.注意事项 1.缓存预热 2.缓存穿透 3.缓存击穿 4.缓存雪崩 三、总结 一、引言 本篇文章将介绍Redis其中一个重要的作用&#xff0c;作为…

微软原版系统下载的几个好用网站

“不要因为走得太远&#xff0c;而忘记为什么出发。” 愿每一位Windows用户&#xff0c;都能在这份情怀中找到属于自己的小确幸&#xff01;满满的情怀&#xff01; 微软官方渠道 微软官网提供纯净的ISO镜像下载&#xff0c;适用于Windows 10/11等系统。访问Microsoft官网下…

kotlin Flow快速学习2025

其实&#xff0c;第一章节&#xff0c;只是让你了解下Flow的基本情况。我们开发中&#xff0c;基本很少使用这种模式。所以来讲&#xff0c;我们甚至可以直接使用StateFlow和SharedFlow才是正途。这是很多教程没有说明的点。所以第一章随便浏览下即可。日后再补充理解都是可以的…

【人工智能99问】什么是教师强制?(16/99)

文章目录什么是教师强制&#xff1f;教师强制&#xff08;Teacher Forcing&#xff09;的定义原比例&#xff08;Original Proportion&#xff09;教师强制的举例说明&#xff08;一&#xff09;教师强制的举例说明&#xff08;二&#xff09;优点和缺点解决曝光偏差的方法什么…

【WPF】WPF 自定义控件之依赖属性

&#x1f4e6; WPF 自定义控件之依赖属性 在开发 WPF 应用时&#xff0c;自定义控件能帮助我们复用逻辑和样式&#xff0c;但我很快会遇到一个问题&#xff1a;在控件内部如何支持数据绑定和属性变更通知&#xff1f;特别是我们继承自 Control 的时候&#xff0c;已经不能再继承…

DOM型XSS破坏

目录 首先 然后 第一种 第二种&#xff08;DOM&#xff09; HTMLCollection HTML Relationships Custom 解 首先 <script>//urlencode解码 //location接口的hash属性是一个字符串&#xff0c;包含一个“#”后跟位置URL的片段标识符。如果URL没有片段标识符&#…

Linux C 多线程基本操作

我们已经了解进程的基本概念&#xff1a;进程是正在执行的程序&#xff0c;并且是系统资源分配的基本单位。当用户需要在一台计算机上去完成多个独立的工作任务时&#xff0c;可以使用多进程的方式&#xff0c;为每个独立的工作任务分配一个进程。多进程的管理则由操作系统负责…

C语言基础:二维数组练习题

1. 一个二维数组赋了初值&#xff0c;用户输入一个数&#xff0c;在该二维数组中查找。找到则返回行列位置&#xff0c;没找到则提示。#include <stdio.h>int main() {int arr[3][3] {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int t;printf("要查找的数&#xff1a;")…

Java面试题034:一文深入了解MySQL(6)

Java面试题029&#xff1a;一文深入了解MySQL&#xff08;1&#xff09; Java面试题030&#xff1a;一文深入了解MySQL&#xff08;2&#xff09; Java面试题031&#xff1a;一文深入了解MySQL&#xff08;3&#xff09; Java面试题032&#xff1a;一文深入了解MySQL&#x…

Java基础教程(011):面向对象中的构造方法

10-面向对象-构造方法 构造方法也叫做构造器、构造函数。 作用&#xff1a;在创建对象的时候给成员变量进行初始化的。 ✅ 一、构造方法的特点特点说明与类同名构造方法的名称必须与类名相同没有返回类型构造方法没有返回值&#xff0c;甚至不能写 void自动调用使用 new 创建对…