如何把 WordPress 网站迁移到新主机
使用这个简单的方法来迁移一个网站以及管理防火墙配置。
你有过把一个 WordPress
网站迁移到一台新主机上的需求吗?我曾经迁移过好多次,迁移过程相当简单。当然,的的市场时候我都不会用通用的推荐方法,这次也不例外 ——
我用更简单的方法,这才是我推荐的方法。
这个迁移方法没有破坏性,因此如果出于某些原因你需要还原到原来的服务器上,很容易可以实现。
一个 WordPress 网站的组成部分
运行一个基于 WordPress 的网站有三个重要组成部分:WordPress 本身,一个 web 服务器,如 Apache(我正在用),以及
MariaDB。MariaDB 是 MySQL 的一个分支,功能相似。
业界有大量的 Web 服务器,由于我使用了 Apache 很长时间,因此我推荐用 Apache。你可能需要把 Apache 的配置方法改成你用的 Web
服务器的方法。
初始配置
我使用一台 Linux 主机作为防火墙和网络路由。在我的网络中 Web 服务器是另一台主机。我的内部网络使用的是 C 类私有网络地址范围,按
无类别域间路由Classless Internet Domain Routing(CIDR)方式简单地记作 192.168.0.0/24。
对于防火墙,相比于更复杂的 firewalld,我更喜欢用非常简单的 IPTables。这份防火墙配置中的一行会把 80 端口(HTTP)接收到的包发送给
Web 服务器。在 /etc/sysconfig/iptables
文件中,你可以在注释中看到,我添加了规则,把其他入站服务器连接转发到同一台服务器上合适的端口。
# Reroute ports for inbound connections to the appropriate web/email/etc server.
# HTTPD goes to 192.168.0.75
-A PREROUTING -d 45.20.209.41/255.255.255.248 -p tcp -m tcp --dport 80 \
-j DNAT --to-destination 192.168.0.75:80
我使用命名虚拟主机named virtual host来配置原来的 Apache Web 服务器,因为我在这个 HTTPD
实例上运行着多个网站。使用命名虚拟主机配置是个不错的方法,因为(像我一样)未来你可能会在运行其他的网站,这个方法可以使其变得容易。
/etc/httpd/conf/httpd.conf 中需要迁移的虚拟主机的网站相关部分请参考下面代码。这个片段中不涉及到 IP
地址的修改,因此在新服务器上使用时不需要修改。
ServerName www.website1.org
ServerAlias server.org
DocumentRoot "/var/website1/html"
ErrorLog "logs/error_log"
ServerAdmin me@website1.org
Options Indexes FollowSymLinks
AllowOverride None
Require all granted