本文整理自网络,侵删。
目录
- 一个 WordPress 网站的组成部分
- 初始配置
- 前期工作
- 安装 Apache 和 MariaDB
- 新服务器防火墙配置
- HTTPD 配置
- 迁移过程
- 最终的修改
- 测试和清理
- 总结
使用这个简单的方法来迁移一个网站以及管理防火墙配置。
你有过把一个 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 地址的修改,因此在新服务器上使用时不需要修改。
<VirtualHost *:80> ServerName www.website1.org ServerAlias server.org DocumentRoot "/var/website1/html" ErrorLog "logs/error_log" ServerAdmin me@website1.org <Directory "/var/website1/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
在迁移之前,你需要在 httpd.conf
的最顶端附近找到 Listen
声明并修改成类似下面这样。这个地址是服务器的真实私有 IP 地址,不是公开 IP 地址。
Listen 192.168.0.75:80
你需要修改新主机上 Listen
的 IP 地址。
前期工作
准备工作分为以下三步:
- 安装服务
- 配置防火墙
- 配置 web 服务器
安装 Apache 和 MariaDB
如果你的新服务器上还没有 Apache 和 MariaDB,那么就安装它们。WordPress 的安装不是必要的。
dnf -y install httpd mariadb
新服务器防火墙配置
确认下新服务器上的防火墙允许访问 80 端口。你_每台_电脑上都有一个防火墙,对吗?大部分现代发行版使用的初始化配置包含的防火墙会阻止所有进来的网络流量,以此来提高安全等级。
下面片段的第一行内容可能已经在你的 IPTables 或其他基于防火墙的网络过滤器中存在了。它标识已经被识别为来自可接受来源的入站包,并绕过后面的其它 INPUT 过滤规则,这样可以节省时间和 CPU 周期。片段中最后一行标识并放行 80 端口新进来的请求到 HTTPD 的连接。
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <删节> # HTTP -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
下面的示例 /etc/sysconfig/iptables
文件是 IPTables 最少规则的例子,可以允许 SSH(端口 22)和 HTTPD(端口 80)连接。
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT # SSHD -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT # HTTP -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT # Final disposition for unmatched packets -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
在新服务器主机上我需要做的就是在 /etc/sysconfig/iptables
文件的防火墙规则里添加上面片段的最后一行,然后重新加载修改后的规则集。
iptables-restore /etc/sysconfig/iptables
大部分基于红帽的发行版本,如 Fedora,使用的是 firewalld
。我发现对于它的适用场景(如家用、小到中型企业)而言,它过于复杂,因此我不用它。我建议你参照 firewalld 网页 来向 firewalld
添加入站端口 80。
你的防火墙及其配置可能跟这个有些差异,但最终的目的是允许新 Web 服务器 80 端口接收 HTTPD 连接。
HTTPD 配置
在 /etc/httpd/conf/httpd.conf
文件中配置 HTTPD。像下面一样在 Listen
片段中设置 IP 地址。我的新 Web 服务器 IP 地址是 192.168.0.125
。
Listen 192.168.0.125:80
复制(对应要迁移的网站的) VirtualHost
片段,粘贴到新服务器上 httpd.conf
文件的末尾。
迁移过程
只有两组数据需要迁移到新服务器 —— 数据库本身和网站目录结构。把两个目录打包成 tar
文档。
cd /var ; tar -cvf /tmp/website.tar website1/ cd /var/lib ; tar -cvf /tmp/database.tar mysql/
把两个 tar 文件复制到新服务器。我通常会把这类文件放到 /tmp
下,这个目录就是用来做这种事的。在新服务器上运行下面的命令,把 tar 文档解压到正确的目录。
cd /var ; tar -xvf /tmp/website.tar cd /var/lib ; tar -xvf /tmp/database.tar
WordPress 的所有文件都在 /var/website1
下,因此不需要在新服务器上安装它。新服务器上不需要执行 WordPress 安装过程。
相关阅读 >>
wordpress教程防wordpress广告的方法 评论中包含过多链接不可提交
wordpress中获取页面链接和标题的相关php函数用法解析
wordpress wp_list_categories(分类的链接列表)的使用方法
wordpress主题中添加文章列表页页码导航的php代码实例
解析wordpress中的post_class与get_post_class函数
更多相关阅读请进入《wordpress》频道 >>
转载请注明出处:木庄网络博客 » WordPress网站迁移到新主机防火墙配置
相关推荐
评论
管理员已关闭评论功能...