LAMP环境数据迁移步骤指南
LAMP(Linux+Apache+MySQL/MariaDB+PHP)环境的迁移需围绕数据库、Web文件、环境配置三大核心展开,以下是详细操作流程及注意事项:
rsync、scp等迁移工具(Linux系统可通过yum install rsync或apt install rsync安装)。ping或telnet测试端口连通性);配置目标服务器防火墙(如firewalld或iptables)开放HTTP(80)、HTTPS(443)、MySQL(3306)等必要端口;若有SELinux,需设置为宽松模式(setenforce 0)或调整相关策略。sudo systemctl stop httpd # Apache服务(CentOS/RHEL)
sudo systemctl stop apache2 # Apache服务(Ubuntu/Debian)
sudo systemctl stop mysqld # MySQL服务(CentOS/RHEL)
sudo systemctl stop mariadb # MariaDB服务(Ubuntu/Debian)
```。
数据库备份
使用mysqldump工具导出源数据库的结构与数据(支持全库、单表或指定数据库)。常用命令示例:
mysqldump -u root -p --all-databases --routines --triggers --single-transaction > full_backup.sql
wordpress库):mysqldump -u root -p wordpress > wordpress.sql
wp_posts表):mysqldump -u root -p wordpress wp_posts > wp_posts.sql
备份文件需保存至安全位置(如本地加密磁盘或网络存储)。
Web文件备份
备份网站根目录(通常为/var/www/html)及关键配置文件(如Apache的/etc/httpd/conf/httpd.conf、PHP的/etc/php.ini、虚拟主机配置/etc/httpd/conf.d/vhost.conf)。使用rsync命令同步文件(保留权限与属性):
rsync -avz /var/www/html/ user@target_server:/path/to/backup/html/
rsync -avz /etc/httpd/conf/ user@target_server:/path/to/backup/httpd_conf/
```。
传输备份文件至目标服务器
使用scp或rsync将备份文件从源服务器复制到目标服务器(scp适合小文件,rsync支持断点续传):
scp full_backup.sql user@target_server:/path/to/destination/
rsync -avz /path/to/backup/html/ user@target_server:/var/www/html/
```。
数据库恢复
在目标服务器上创建与源数据库同名的数据库和用户,并授予权限:
mysql -u root -p -e "CREATE DATABASE wordpress;"
mysql -u root -p -e "CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'new_password';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';"
mysql -u root -p -e "FLUSH PRIVILEGES;"
导入备份的SQL文件:
mysql -u wp_user -p wordpress < wordpress.sql
```。
Web文件恢复
将备份的Web文件同步至目标服务器的网站根目录(如/var/www/html),并调整文件权限(通常属主为www-data或apache,权限为755):
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/
```。
环境配置调整
/etc/httpd/conf/httpd.conf),更新DocumentRoot路径或虚拟主机域名,然后重启服务:sudo systemctl restart httpd
php.ini文件(如调整memory_limit、upload_max_filesize),并重启Apache使配置生效。功能测试
访问目标服务器的IP或域名,检查网站页面是否正常加载;测试数据库连接(如登录WordPress后台、执行SQL查询);查看Apache错误日志(/var/log/httpd/error_log)和MySQL错误日志(/var/log/mysql/error.log),排查潜在错误。
权限与性能检查
确认Web文件权限正确(避免403 Forbidden错误);优化MySQL性能(如调整innodb_buffer_pool_size、开启慢查询日志);若有CDN或缓存服务,需更新其指向目标服务器的IP。
DNS更新
登录域名管理面板,将DNS解析记录(A记录或CNAME)指向目标服务器的IP地址,等待DNS生效(通常需几分钟至48小时)。
Percona Xtrabackup(物理备份工具)替代mysqldump,提升备份与恢复速度;或使用rsync直接同步数据目录(需停止MySQL服务)。