温馨提示×

ubuntu apache如何迁移数据

小樊
38
2026-09-20 12:58:18
栏目: 智能运维

在 Ubuntu 上迁移 Apache 相关数据(网站文件、数据库、配置)通常包含以下几个部分。下面给你一套通用、可操作的迁移方案,适用于:

  • 同机换目录
  • 服务器 A → 服务器 B
  • 云服务器迁移

一、迁移前准备

1. 查看当前 Apache 信息

apache2 -v
dpkg -l | grep apache

2. 确认网站目录和配置位置

常见路径:

  • 网站根目录:/var/www/
  • 虚拟主机配置:/etc/apache2/sites-available/
  • 主配置:/etc/apache2/apache2.conf
  • 日志:/var/log/apache2/

二、迁移 Apache 网站文件

方法 1:本地或同机迁移

sudo cp -a /var/www/html /new/path/www

修改虚拟主机:

sudo nano /etc/apache2/sites-available/000-default.conf

修改:

DocumentRoot /new/path/www
sudo systemctl restart apache2

方法 2:跨服务器迁移(推荐 rsync)

在源服务器:

rsync -avz /var/www/ user@新服务器IP:/var/www/

在目标服务器:

sudo chown -R www-data:www-data /var/www

三、迁移 Apache 配置文件

打包配置

sudo tar czf apache-conf.tar.gz /etc/apache2

恢复到新服务器

sudo tar xzf apache-conf.tar.gz -C /

启用站点:

sudo a2ensite your-site.conf
sudo systemctl restart apache2

四、迁移数据库(如 MySQL / MariaDB)

1. 导出数据库

mysqldump -u root -p --all-databases > all.sql

或单个库:

mysqldump -u root -p dbname > dbname.sql

2. 传输到新服务器

scp dbname.sql user@新服务器IP:/tmp/

3. 在新服务器导入

mysql -u root -p
CREATE DATABASE dbname;
exit

mysql -u root -p dbname < /tmp/dbname.sql

五、迁移用户上传数据(如有)

例如:

  • 图片
  • 附件
  • 缓存目录
rsync -avz /var/www/html/uploads/ user@新服务器:/var/www/html/uploads/

六、HTTPS 证书迁移(非常重要)

Let’s Encrypt

sudo cp -r /etc/letsencrypt /新服务器/etc/

或重新申请:

sudo certbot --apache

七、迁移后检查

sudo apache2ctl configtest
sudo systemctl status apache2

访问网站,检查:

  • 页面正常
  • 数据库连接正常
  • 文件权限正确

八、常见问题

403 Forbidden

sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www

网站打不开

sudo a2ensite xxx.conf
sudo systemctl reload apache2

如果你能告诉我:

  • 是本机迁移还是跨服务器?
  • 是否使用 MySQL / PHP?
  • 是否用 Docker?

我可以给你更精确的命令。

0 踩