温馨提示×

怎样迁移centos的apache站点

小樊
48
2026-09-02 22:30:23
栏目: 智能运维

下面按常见场景给你一套从 CentOS 迁移 Apache 站点的完整思路,适用于 CentOS 6/7/8 → 新 CentOS / Rocky / Alma / 其他 Linux。


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

  1. 确认 Apache 版本
httpd -v
# 或
apachectl -v
  1. 确认站点类型
  • 单站点(默认 /var/www/html)
  • 多站点(基于 VirtualHost)
  • 是否使用 SSL(HTTPS)
  • 是否用到 .htaccess、CGI、PHP、Python 等
  1. 记录关键信息
  • 域名
  • 站点根目录
  • 数据库(MySQL / MariaDB)
  • 定时任务(cron)
  • 特殊模块(mod_php / mod_ssl / mod_rewrite)

二、旧服务器导出数据

1️⃣ 备份站点文件

tar czf /tmp/site.tar.gz /var/www/html
# 或指定目录
tar czf /tmp/site.tar.gz /data/www/example.com

2️⃣ 备份 Apache 配置

cp -r /etc/httpd /tmp/httpd_conf_backup

常用目录:

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/*.conf

3️⃣ 若有数据库(如 MySQL)

mysqldump -u root -p dbname > /tmp/db.sql

4️⃣ 传输到新服务器

scp /tmp/site.tar.gz root@new_server:/tmp/
scp /tmp/httpd_conf_backup root@new_server:/tmp/
scp /tmp/db.sql root@new_server:/tmp/

三、新服务器部署

1️⃣ 安装 Apache

# CentOS / Rocky / Alma
yum install httpd -y
# 或
dnf install httpd -y

2️⃣ 还原站点文件

tar xzf /tmp/site.tar.gz -C /

3️⃣ 还原 Apache 配置

cp -r /tmp/httpd_conf_backup/* /etc/httpd/

⚠ 注意:

  • 检查 DocumentRoot
  • 检查 ServerName
  • 删除旧服务器 IP 相关信息

4️⃣ 启用并启动 Apache

systemctl enable httpd
systemctl start httpd

四、SSL 证书迁移(如有)

方法一:直接复制证书

/etc/pki/tls/certs/
/etc/pki/tls/private/

方法二:重新申请(推荐)

yum install certbot python3-certbot-apache
certbot --apache

五、数据库恢复(如适用)

mysql -u root -p
create database dbname;
use dbname;
source /tmp/db.sql;

六、权限与 SELinux(CentOS 常见坑)

1️⃣ 文件权限

chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html

2️⃣ SELinux(非常重要)

setsebool -P httpd_can_network_connect 1
restorecon -Rv /var/www

查看状态:

getenforce

七、测试与切换

  1. 本地 hosts 测试
新服务器IP  domain.com
  1. 修改 DNS 解析
  • A 记录指向新 IP
  1. 确认日志正常
tail -f /var/log/httpd/access_log
tail -f /var/log/httpd/error_log

八、常见迁移问题

❌ 403 Forbidden
→ SELinux / 目录权限问题

❌ 500 Internal Error
→ PHP 版本不一致 / .htaccess 语法

❌ 站点打不开
→ DocumentRoot 路径错误


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

  • CentOS 版本
  • 是否用 PHP / 数据库
  • 单站点还是多站点

我可以直接给你精确命令版迁移方案。

0 踩