WordPress 迁移记录

背景

最近aliyun 200M的香港轻量云要到期了,考虑到其限速比较频繁,打算整体迁移到 tencentcloud 的竞品上,后者目前为止没碰见过限速问题。

考虑到可预见的未来里,可能还会经历几次迁移,所以记录下迁移步骤。

目前来看整体可分为 4 部分:

  • php环境安装及wordpress项目源码部署
  • mysql数据库的部署及数据迁移
  • nginx环境安装及配置迁移
  • certbot部署

php环境安装及wordpress项目源码部署

备份项目源码为backup.zip

zip -r backup.zip /data/app/*

还原备份,注意需要把源码权限与 nginx 的执行账户对齐,默认www-data,否则 wordpress 的更新操作会提示需要ftp登录权限。

cd /data/app/
unzip backup.zip
chmod -R 777 /data/app/*
chown -R www-data:www-data /data/app/*

环境部署,安装一些常见扩展,后续可通过检查fpm错误日志/var/log/php8.2-fpm.log判断是否有其他扩展缺失。

apt install php8.2 php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml

mysql数据库的部署及数据迁移

使用mysqldump备份数据库,假设对a_wordpressb_wordpress两个数据库进行备份,并保存为backup.sql文件。

mysqldump -uroot -hlocalhost -p -B a_wordpress b_wordpress > backup.sql

还原数据库,登录数据库并使用 source 命令还原

source backup.sql

数据库部署,参考了官方文档。如果仅做迁移,建议新老数据库密码保持一致,省了更改 wordpress 配置。

apt install lsb-release
wget https://repo.mysql.com/mysql-apt-config_0.8.34-1_all.deb
dpkg -i mysql-apt-config_0.8.34-1_all.deb
apt update
apt install mysql-server

nginx环境安装及配置迁移

备份

zip -r nginx_conf.zip /etc/nginx/sites-enabled/*

还原,先删除默认配置,通常只有 default 文件,再恢复。

rm -r /etc/nginx/sites-enabled/*
unzip nginx_conf.zip

安装 nginx,debian 默认运行 apache,可以先停掉,否则端口冲突nginx无法启动。

service apache2 stop
apt install nginx
service nginx start

启动nginx的时候可能会报错,因为我们尚未申请证书,老配置文件中与证书相关的部分可以先删掉,先让 nginx 启动起来。

certbot部署

部署certbot,申请证书并加入 crontab 定时续期,参考了官方文档

apt install python3.11-venv
python3 -m venv /opt/certbot/
/opt/certbot/bin/pip install --upgrade pip
/opt/certbot/bin/pip install certbot certbot-nginx
ln -s /opt/certbot/bin/certbot /usr/bin/certbot
certbot --nginx
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | tee -a /etc/crontab > /dev/null

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注