<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用這個簡單的方法來遷移一個網站以及管理防火牆設定。
你有過把一個 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 地址。
準備工作分為以下三步:
如果你的新伺服器上還沒有 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 連線。
在 /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 安裝過程。
這個目錄就是需要遷移到新伺服器上的全部內容。
最後一步是啟動(或重啟)mysqld
和 httpd
服務守護行程。WrodPress 不是一個服務,因此不使用守護行程的方式來啟動。
systemctl start mysqld ; systemctl start httpd
啟動之後,你應該檢查下這些服務的狀態。
systemctl status mysqld ● mariadb.service - MariaDB 10.5 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2021-08-21 14:03:44 EDT; 4 days ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 251783 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS) Process: 251805 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS) Process: 251856 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS) Main PID: 251841 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 15 (limit: 19003) Memory: 131.8M CPU: 1min 31.793s CGroup: /system.slice/mariadb.service └─251841 /usr/libexec/mariadbd --basedir=/usr Aug 21 14:03:43 simba.stmarks-ral.org systemd[1]: Starting MariaDB 10.5 database server... Aug 21 14:03:43 simba.stmarks-ral.org mariadb-prepare-db-dir[251805]: Database MariaDB is probably initialized in /var/lib/mysql already, n> Aug 21 14:03:43 simba.stmarks-ral.org mariadb-prepare-db-dir[251805]: If this is not the case, make sure the /var/lib/mysql is empty before> Aug 21 14:03:44 simba.stmarks-ral.org mariadbd[251841]: 2021-08-21 14:03:44 0 [Note] /usr/libexec/mariadbd (mysqld 10.5.11-MariaDB) startin> Aug 21 14:03:44 simba.stmarks-ral.org systemd[1]: Started MariaDB 10.5 database server. systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d └─php-fpm.conf Active: active (running) since Sat 2021-08-21 14:08:39 EDT; 4 days ago Docs: man:httpd.service(8) Main PID: 252458 (httpd) Status: "Total requests: 10340; Idle/Busy workers 100/0;Requests/sec: 0.0294; Bytes served/sec: 616 B/sec" Tasks: 278 (limit: 19003) Memory: 44.7M CPU: 2min 31.603s CGroup: /system.slice/httpd.service ├─252458 /usr/sbin/httpd -DFOREGROUND ├─252459 /usr/sbin/httpd -DFOREGROUND ├─252460 /usr/sbin/httpd -DFOREGROUND ├─252461 /usr/sbin/httpd -DFOREGROUND ├─252462 /usr/sbin/httpd -DFOREGROUND └─252676 /usr/sbin/httpd -DFOREGROUND Aug 21 14:08:39 simba.stmarks-ral.org systemd[1]: Starting The Apache HTTP Server... Aug 21 14:08:39 simba.stmarks-ral.org httpd[252458]: AH00112: Warning: DocumentRoot [/var/teststmarks-ral/html] does not exist Aug 21 14:08:39 simba.stmarks-ral.org httpd[252458]: Server configured, listening on: port 80 Aug 21 14:08:39 simba.stmarks-ral.org systemd[1]: Started The Apache HTTP Server.
現在所需的服務都已經執行了,你可以把 /etc/sysconfig/iptables
檔案中 HTTDP 的防火牆規則改成下面的樣子:
-A PREROUTING -d 45.20.209.41/255.255.255.248 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.125:80
然後重新載入設定的 IPTables 規則。
iptables-restore /etc/sysconfig/iptables
由於防火牆規則是在防火牆主機上,因此不需要把外部 DNS 入口改成指向新伺服器。如果你使用的是內部 DNS 伺服器,那麼你需要把 IP 地址改成內部 DNS 資料庫裡的 A 記錄。如果你沒有用內部 DNS 伺服器,那麼請確保主機 /etc/hosts
檔案裡新伺服器地址設定得沒有問題。
請確保對新設定進行測試。首先,停止舊伺服器上的 mysqld
和 httpd
服務。然後通過瀏覽器存取網站。如果一切符合預期,那麼你可以關掉舊伺服器上的 mysqld
和 httpd
。如果有失敗,你可以把 IPTables 的路由規則改回去到舊伺服器上,直到問題解決。
之後我把 MySQL 和 HTTPD 從舊伺服器上刪除了,這樣來確保它們不會意外地被啟動。
就是這麼簡單。不需要執行資料庫匯出和匯入的過程,因為 mysql
目錄下所有需要的東西都已經複製過去了。需要執行匯出/匯入過程的場景是:有網站自己的資料庫之外的資料庫;MariaDB 範例上還有其他網站,而你不想把這些網站複製到新伺服器上。
遷移舊伺服器上的其他網站也很容易。其他網站依賴的所有資料庫都已經隨著 MariaDB 的遷移被轉移到了新伺服器上。你只需要把 /var/website
目錄遷移到新伺服器,新增合適的虛擬主機片段,然後重啟 HTTPD。
我遵循這個過程把很多個網站從一個伺服器遷移到另一個伺服器,每次都沒有問題。
via: https://opensource.com/article/21/9/migrate-wordpress
以上就是 WordPress網站遷移到新主機防火牆設定的詳細內容,更多關於 WordPress網站遷移防火牆設定的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45