迁移 Debian 下的 LNMP(Linux + Nginx + MySQL/MariaDB + PHP)站点,通常分 4 个部分:系统准备、Web 站点、数据库、数据一致性。下面给你一套通用、实战型迁移流程,适用于云服务器、VPS、本地机之间迁移。
在 目标 Debian 服务器 上先做好基础环境:
apt update
apt install -y nginx mariadb-server php-fpm php-mysql php-common php-cli
确认版本尽量和源服务器一致:
查看版本:
nginx -v
php -v
mysql --version
cd /var/www
tar czvf site.tar.gz your_site/
或包含配置:
tar czvf site_full.tar.gz your_site/ /etc/nginx/sites-available/your_site
scp site.tar.gz root@目标IP:/tmp
mkdir -p /var/www
tar xzvf /tmp/site.tar.gz -C /var/www
恢复 Nginx 配置:
cp /tmp/sites-available/your_site /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/your_site /etc/nginx/sites-enabled/
确认 PHP-FPM 监听方式一致:
grep listen /etc/php/*/fpm/pool.d/www.conf
常见:
listen = /run/php/php-fpm.sock
修改 Nginx:
fastcgi_pass unix:/run/php/php-fpm.sock;
重载服务:
systemctl reload nginx php-fpm
mysqldump -u root -p --single-transaction --all-databases > all.sql
或单库:
mysqldump -u root -p dbname > dbname.sql
scp all.sql root@目标IP:/tmp
mysql -u root -p < /tmp/all.sql
如果原用户不存在:
CREATE DATABASE dbname;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
chown -R www-data:www-data /var/www/your_site
chmod -R 755 /var/www/your_site
如有上传目录:
chmod -R 777 /var/www/your_site/uploads
常见文件:
.envconfig/database.phpwp-config.php检查:
nginx -t
systemctl status nginx php-fpm mariadb
浏览器访问新服务器 IP / 域名,检查:
✅ 页面正常
✅ 数据库连接
✅ 上传、登录、后台
A 记录 → 新服务器 IP
rsync -avz /var/www/your_site/ root@目标IP:/var/www/your_site/
| 问题 | 解决 |
|---|---|
| 502 Bad Gateway | PHP-FPM 未启动 / sock 路径错误 |
| 403 | nginx 无目录权限 |
| 数据库连接失败 | 用户 / host / 密码不一致 |
| 上传失败 | upload 目录权限 |
| HTTPS 失效 | 证书未迁移或路径错误 |
如果你愿意,我可以:
直接贴:
cat /etc/os-release
php -v
nginx -v