温馨提示×

如何迁移ubuntu apache2

小樊
52
2026-09-11 04:43:41
栏目: 智能运维

下面给你一份从一台 Ubuntu 服务器迁移 Apache2 到另一台 Ubuntu 服务器的常见做法,适用于同版本或相近版本 Ubuntu(如 20.04 → 22.04)。


一、迁移前准备(旧服务器)

1. 记录 Apache 版本

apache2 -v

2. 备份 Apache 配置

sudo tar czvf apache-config.tar.gz /etc/apache2

3. 备份网站文件

常见目录:

/var/www/

示例:

sudo tar czvf www.tar.gz /var/www

4. 备份数据库(如有)

如果是 PHP + MySQL:

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

5. 导出启用的模块和站点(可选)

apache2ctl -M
ls /etc/apache2/sites-enabled/

二、新服务器安装 Apache2

sudo apt update
sudo apt install apache2

如需 PHP:

sudo apt install php libapache2-mod-php

三、恢复配置和文件

1. 恢复 Apache 配置

sudo rm -rf /etc/apache2
sudo tar xzvf apache-config.tar.gz -C /

⚠ 注意:

  • 如果 Ubuntu 版本不同,建议只恢复 sites-available 和 sites-enabled
  • 不要直接覆盖 ports.conf 和 mods-*(可能有差异)

2. 恢复网站文件

sudo tar xzvf www.tar.gz -C /

3. 恢复数据库(如有)

mysql -u root -p < db.sql

四、启用模块和站点

sudo a2enmod rewrite
sudo a2ensite your-site.conf
sudo a2dissite 000-default.conf

五、测试与重启

sudo apache2ctl configtest
sudo systemctl restart apache2

浏览器访问测试。


六、常见问题

1. 权限问题

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

2. Ubuntu 版本差异

  • 22.04 使用 mpm_event
  • 旧版可能用 mpm_prefork

查看:

apache2ctl -M | grep mpm

3. PHP 不解析

sudo a2enmod php
sudo systemctl restart apache2

七、推荐迁移方式(进阶)

  • 使用 rsync
rsync -avz /etc/apache2 user@new:/etc/
rsync -avz /var/www user@new:/var/
  • 使用 Docker Apache
  • 使用 配置管理(Ansible)

如果你能告诉我:

  • 旧/新 Ubuntu 版本
  • 是否用 PHP / MySQL
  • 是否多站点 / HTTPS

我可以给你更精确的迁移方案。

0 踩