温馨提示×

如何迁移apache2站点

小樊
49
2026-07-17 19:41:17
栏目: 编程语言

迁移 Apache2 站点通常包括配置文件、网站文件、数据库(如有)和权限等部分。下面给你一套完整、通用的迁移流程,适用于从一台服务器迁移到另一台服务器(或同机重建)。


一、准备环境(目标服务器)

在目标服务器上先安装 Apache2 及相关组件:

sudo apt update
sudo apt install apache2

如有 PHP / MySQL:

sudo apt install php libapache2-mod-php php-mysql
sudo apt install mysql-server

二、迁移网站文件

1️⃣ 在原服务器打包网站目录

假设原站点目录是 /var/www/html/mysite

cd /var/www
tar czvf mysite.tar.gz mysite/

2️⃣ 传到目标服务器

scp mysite.tar.gz user@目标服务器IP:/tmp/

3️⃣ 在目标服务器解压

sudo tar xzvf /tmp/mysite.tar.gz -C /var/www/

三、迁移 Apache 虚拟主机配置

1️⃣ 原服务器复制配置

Apache 站点配置一般在:

/etc/apache2/sites-available/

例如:

mysite.conf

2️⃣ 拷贝到目标服务器

scp /etc/apache2/sites-available/mysite.conf user@目标服务器IP:/tmp/

3️⃣ 放到目标服务器

sudo cp /tmp/mysite.conf /etc/apache2/sites-available/

4️⃣ 启用站点

sudo a2ensite mysite.conf

四、迁移数据库(如适用)

1️⃣ 原服务器导出数据库

mysqldump -u root -p mysite_db > mysite_db.sql

2️⃣ 传到目标服务器

scp mysite_db.sql user@目标服务器IP:/tmp/

3️⃣ 目标服务器导入

mysql -u root -p
CREATE DATABASE mysite_db;
EXIT;
mysql -u root -p mysite_db < /tmp/mysite_db.sql

五、设置权限和所有者

常见做法(以 www-data 为例):

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

六、启用必要 Apache 模块

如用到 rewrite、ssl 等:

sudo a2enmod rewrite
sudo a2enmod ssl

七、检查配置并重启 Apache

sudo apache2ctl configtest
sudo systemctl restart apache2

八、修改 DNS(如换服务器)

如果 IP 变了:

  • 修改域名 DNS 的 A 记录
  • 等待 DNS 生效(几分钟~24 小时)

九、常见迁移问题排查

❌ 403 Forbidden

  • 目录权限不对
  • DocumentRoot 路径错误

❌ 404 Not Found

  • 虚拟主机未启用
  • ServerName 不匹配

❌ 数据库连接失败

  • 数据库用户未授权
  • 配置文件中的数据库地址/密码错误

十、迁移检查清单 ✅

  • [ ] Apache 已安装
  • [ ] 网站文件已复制
  • [ ] 虚拟主机已启用
  • [ ] 数据库已迁移
  • [ ] 权限正确
  • [ ] Apache 重启成功
  • [ ] 域名解析正确

如果你愿意,可以告诉我:

  • ✅ 是否使用 SSL
  • ✅ 是否使用 PHP / Python / 静态页面
  • ✅ 是否跨系统(Ubuntu → CentOS 等)

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

0