在 CentOS 上迁移 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境,通常有两种常见场景:
下面以最常见:把一台 CentOS 上的 LAMP 站点整体迁移到另一台 CentOS 服务器为例说明。
yum update -y
安装 LAMP:
yum install -y httpd mariadb-server php php-mysql
启动服务:
systemctl enable httpd mariadb
systemctl start httpd mariadb
tar czf apache-conf.tar.gz /etc/httpd
或者只备份虚拟主机:
tar czf vhost.tar.gz /etc/httpd/conf.d
把 apache-conf.tar.gz 传到新服务器:
scp apache-conf.tar.gz root@new-server:/root/
新服务器恢复:
tar xzf apache-conf.tar.gz -C /
tar czf www.tar.gz /var/www/html
如果有自定义目录:
tar czf site.tar.gz /data/www
scp www.tar.gz root@new-server:/root/
tar xzf www.tar.gz -C /
设置权限:
chown -R apache:apache /var/www/html
mysqldump -uroot -p --all-databases > all.sql
或单个数据库:
mysqldump -uroot -p dbname > dbname.sql
scp all.sql root@new-server:/root/
mysql -uroot -p < all.sql
⚠️ 注意:
SELECT user,host FROM mysql.user;
tar czf php-conf.tar.gz /etc/php.ini /etc/php.d
tar xzf php-conf.tar.gz -C /
旧服务器查看扩展:
php -m
新服务器安装:
yum install -y php-mysql php-gd php-mbstring ...
新服务器IP domain.com
systemctl status httpd mariadb
chown -R apache:apache /var/www
chmod 755 /var/www
bind-addressfirewall-cmd --add-service=mysql --permanent
firewall-cmd --reload
yum install php
systemctl restart httpd
如果是整机迁移,可以用:
示例 rsync:
rsync -avz /var/www/ root@new:/var/www/
rsync -avz /etc/httpd/ root@new:/etc/httpd/
如果你能说明:
我可以给你更精确的迁移命令。