在 CentOS 上迁移 Apache(httpd)通常分为 同机迁移 和 跨服务器迁移 两种场景。下面我按最常见、最稳妥的方式给你系统讲解,你可以按需取用。
systemctl status httpd
httpd -v
cp -a /etc/httpd /etc/httpd.bak
cp -a /var/www /var/www.bak
/var/www 迁移到 /data/wwwmkdir -p /data/www
cp -a /var/www/* /data/www/
chown -R apache:apache /data/www
编辑主配置文件:
vi /etc/httpd/conf/httpd.conf
修改以下项:
DocumentRoot "/data/www/html"
<Directory "/data/www/html">
AllowOverride All
Require all granted
</Directory>
vi /etc/httpd/conf.d/*.conf
示例:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/www/html
</VirtualHost>
httpd -t
systemctl restart httpd
| 类型 | 路径 |
|---|---|
| 配置文件 | /etc/httpd |
| 网站数据 | /var/www |
| 日志 | /var/log/httpd |
| 模块 | 新服务器重装 |
tar czvf httpd-conf.tar.gz /etc/httpd
tar czvf www-data.tar.gz /var/www
可选:
tar czvf httpd-log.tar.gz /var/log/httpd
scp httpd-conf.tar.gz www-data.tar.gz root@新服务器IP:/root/
yum install -y httpd
systemctl enable httpd
tar xzvf httpd-conf.tar.gz -C /
tar xzvf www-data.tar.gz -C /
确保权限正确:
chown -R apache:apache /var/www
httpd -t
systemctl start httpd
systemctl status httpd
如果页面打不开,多半是 SELinux 问题。
getenforce
setenforce 0
semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
restorecon -Rv /data/www
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
httpd -t 无报错yum install -y php php-cli
systemctl restart httpd
CentOS 默认:
/etc/httpd//var/www/httpd如果你愿意,可以直接告诉我:
我可以给你一套完全贴合你环境的迁移方案。