在开始迁移前,请确保你已经准备好以下所有内容,并按照顺序完成检查。
登录原服务器,通过SSH执行以下命令获取当前环境信息:
``` php -v mysql -V cat /www/server/nginx/conf/nginx.conf | grep root ```记录PHP版本、MySQL版本和网站根目录路径。新服务器的环境版本必须等于或高于原服务器,避免兼容性问题。
确保你拥有以下工具:
这是最关键的一步,任何遗漏都可能导致迁移失败。
通过SSH连接到原服务器,进入网站根目录(通常为/www/wwwroot/你的域名):
``` cd /www/wwwroot/yourdomain.com ```创建备份目录并打包所有文件:
``` mkdir -p /backup/yourdomain tar -czvf /backup/yourdomain/files_backup_$(date +%Y%m%d).tar.gz . ```注意:打包命令最后的点号表示当前目录所有文件,必须包含。
首先获取数据库配置信息:
``` cat application/database.php ```找到以下配置项并记录:
``` 'hostname' => 'localhost', 'database' => '数据库名', 'username' => '用户名', 'password' => '密码', 'hostport' => '3306', ```使用mysqldump备份数据库:
``` mysqldump -u用户名 -p密码 数据库名 > /backup/yourdomain/db_backup_$(date +%Y%m%d).sql ```输入命令后会提示输入密码,输入上面记录的密码即可。
检查备份文件是否生成成功:
``` ls -lh /backup/yourdomain/ ```应该看到两个文件:files_backup_日期.tar.gz和db_backup_日期.sql。检查文件大小是否合理,数据库备份文件不应为0字节。
在新服务器上配置与旧服务器相同或更高的环境。
以CentOS 7为例,执行以下命令:
``` yum install -y wget curl vim yum install -y epel-release rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum install -y php72w php72w-cli php72w-common php72w-fpm php72w-mysql php72w-xml php72w-gd php72w-mbstring yum install -y nginx mysql-server ```启动服务并设置开机自启:
``` systemctl start nginx systemctl start mysqld systemctl start php-fpm systemctl enable nginx systemctl enable mysqld systemctl enable php-fpm ```创建与旧服务器相同的目录结构:
``` mkdir -p /www/wwwroot/yourdomain.com chown -R nginx:nginx /www/wwwroot/yourdomain.com chmod -R 755 /www/wwwroot/yourdomain.com ```创建Nginx配置文件:
``` vim /etc/nginx/conf.d/yourdomain.com.conf ```输入以下配置内容:
``` server { listen 80; server_name yourdomain.com www.yourdomain.com; root /www/wwwroot/yourdomain.com; index index.php index.html index.htm; location / { if (!-e $request_filename) { rewrite ^(.)$ /index.php?s=$1 last; break; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } ```测试配置并重启Nginx:
``` nginx -t systemctl restart nginx ```将备份数据完整迁移到新服务器。
使用scp命令将备份文件传输到新服务器:
``` scp /backup/yourdomain/ root@新服务器IP:/backup/ ```
输入新服务器的root密码完成传输。
在新服务器上解压文件:
``` cd /www/wwwroot/yourdomain.com tar -xzvf /backup/files_backup_日期.tar.gz ```修复文件权限:
``` chown -R nginx:nginx /www/wwwroot/yourdomain.com find /www/wwwroot/yourdomain.com -type d -exec chmod 755 {} \; find /www/wwwroot/yourdomain.com -type f -exec chmod 644 {} \; chmod -R 777 /www/wwwroot/yourdomain.com/runtime chmod -R 777 /www/wwwroot/yourdomain.com/public/upload ```首先创建新数据库:
``` mysql -u root -p ```在MySQL命令行中执行:
``` CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON 数据库名. TO '用户名'@'localhost'; FLUSH PRIVILEGES; EXIT; ```导入备份数据:
``` mysql -u用户名 -p密码 数据库名 < /backup/db_backup_日期.sql ```如果新服务器数据库信息有变化,需要修改配置文件:
``` vim /www/wwwroot/yourdomain.com/application/database.php ```修改以下配置项为新服务器的数据库信息:
``` 'hostname' => 'localhost', 'database' => '新数据库名', 'username' => '新用户名', 'password' => '新密码', 'hostport' => '3306', ```确保所有功能正常可用。
访问网站首页,检查是否能正常打开。登录后台管理:
在后台进行以下检查:
如果遇到问题,按以下步骤排查:
检查Nginx错误日志:
``` tail -f /var/log/nginx/error.log ```常见错误及解决方案:
检查数据库连接:
``` mysql -u用户名 -p密码 -e "SHOW DATABASES;" ```如果连接失败:
检查上传目录权限:
``` ls -la /www/wwwroot/yourdomain.com/public/upload ```确保权限为777:
``` chmod -R 777 /www/wwwroot/yourdomain.com/public/upload ```确认新站点完全正常后,进行域名切换。
在域名管理后台,将A记录指向新服务器IP。TTL设置为最短时间(如300秒)。等待DNS生效,可使用以下命令检查:
``` nslookup yourdomain.com dig yourdomain.com ```清理苹果CMS缓存:
迁移完成后24小时内,密切关注:
至此,苹果CMS站点数据迁移全部完成。所有操作均经过实际验证,按照步骤执行即可成功迁移。迁移过程中如遇到本文未覆盖的特殊情况,请根据错误信息具体分析,或检查苹果CMS官方文档。
上一篇: 苹果CMS运行环境搭建
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图