網站 / 莊生趣味 tricohobby 重生與分身

莊生趣味 tricohobby再次啟動(2022/06/03修改) 有提到原本網站是架設在GCP

在一次安裝外掛的過程中,可能因為我自己手賤關閉視窗導致網站資料消失

原本嘗試重新使用GCP的WordPress with NGINX and SSL packaged by Bitnami

但是一直無法順利設定SSL,所以先改到BlueHost復原網站

轉移的過程中也遭遇很多問題,詳細可以去看莊生趣味 tricohobby再次啟動(2022/06/03修改) 

由於BlueHost只有初次購買的價錢才會比較優惠,之後續約價格就會翻倍

長久之計還是要換個地方,重點是GCP比較便宜

因此還是繼續嘗試在GCP透過VM來架設網站

過程就不多說了,因為我至少重複了10次以上

不過最後還是完成在GCP復原網站,並且設定SSL

筆記一下整個過程的經驗

1)安裝WordPress with NGINX and SSL的方式有兩種

一種是直接在GCP啟動VM,另一種是透過Bitnami連結到GCP

透過Bitnami啟動可以比較方便使用SSH與取得金鑰

如果是在GCP啟動,會無法直接下載金鑰

而是要自己透過PuTTYgen生成,然後加入VM的設定裡

2)復原網站

這個步驟嘗試最多次,因為備份檔匯入失敗,網站就會掛掉

而且通常是掛在資料庫

如果對於Wordpress架構熟悉的話,應該還是有辦法直接連入資料庫復原

 

一開始先用新版的all-in-one-wp-migration匯入小於512MB的備份檔都是沒問題

由於新版的all-in-one-wp-migration無法修改上傳檔案的大小限制

所以改回舊版的all-in-one-wp-migration,並修改constants.php上傳限制

但是實際匯入時,在回復大於512MB比較新的備份檔就會卡住

爬文之後有人建議先把檔案上傳到主機然後用備份還原功能

所以改用FTP上傳,再用SSH登入主機來搬動檔案 (因為用FTP只能上傳到特定資料夾)

不過還是遇到問題

爬文之後,可能是PHP本身的問題

再嘗試修改php.ini的post_max_size 、upload_max_filesize 、memory_limit 、max_execution_time 、max_input_time

把數值或者限制放寬,之後就順利匯入並回復網站了

總結就是GCP 跟  PHP(WordPress)對於資料上傳都有很多限制

後來也發現all-in-one-wp-migration原本的上限(透過extension可以加大成512MB)是跟PHP的設定有關係

即使修改all-in-one-wp-migration的constants.php增加可以還原的檔案大小

仍然不會變動到原本PHP的設定,需要進一步修改PHP相關的上傳與程式執行的設定

這樣才能順利匯入跟執行

備註:修改php.ini 需要重啟整個 bitnami services

sudo /opt/bitnami/ctlscript.sh start

 

3)設定SSL

還是依照bitnami官方說明來設定

官方有個Bitnami HTTPS Configuration Tool,但是只能用在Apache伺服器版本

Nginx版本還是只能一步一步輸入指令

[GCP] 在Google Cloud Platform裡使用SSL憑證看到作者在連入主機之後

會用sudo su指令切換成最高權限root

所以就試試看用最高權限來執行指令

在Step 3: Configure The Web Server To Use The Let’s Encrypt Certificate

輸入sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.csr /opt/bitnami/nginx/conf/bitnami/certs/server.csr.old會產生錯誤

說找不到/opt/bitnami/nginx/conf/bitnami/certs/server.csr

爬文之後,猜測可能是第一次生成證書,主機本來就不存在這個檔案

所以我繼續輸入後面的指令

在重啟 bitnami services 時又產生錯誤

Failed to start LSB: bitnami init script.

根據主機顯示的訊息使用bndiagnostic-tool進行偵錯

sudo /opt/bitnami/bndiagnostic-tool

結果回報說是少了 server.key,所以我重新輸入指令

sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt

備註:DOMAIN要改成自己的網站網域,也可以先到/opt/bitnami/letsencrypt/certificates/ 確認檔案是否存在,以及檔案名稱是否正確

這一次就成功重啟,猜測應該是之前指令輸入錯誤

 

4)修改網址

因為是用備份還原的方式回復網站

有些tricohobby.net都變成 ip網址

爬文之後,方法就是到資料庫去修改

可以用Sql的更新取代語法來處理

語法:UPDATE 資料表名稱 SET 欄位名稱 = REPLACE(欄位名稱, '原本字串', '替換字串') WHERE 欄位名稱 LIKE '%原本字串%';
範例:UPDATE testtable SET Description = REPLACE(Description, 'aaa', 'bbb') WHERE Description LIKE '%aaa%';

我只有修改跟文章(post)有關的資料表wp_post

而在控制台-設定-一般裡的網址都是顯示http開頭的網址

爬文也是說可以到資料庫去修改wp_option,但是我在資料庫看到的卻是https開頭

後來才發現wp-congip.php裡面的設定是http

define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/' );
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/' );

所以修改成https之後

在控制台的設定-一般顯示的就是正確的網址

備註:

如果是安裝類似WordPress with NGINX and SSL packaged by Bitnami這種套裝的Wordpress是無法直接在控制台修改網址

只能到資料庫或者wp-congip.php裡修改

 

後記:

現在同時有兩個網站,暫時把在GCP的網站指向tricohobby.net的子網域─backup.tricohobby.net

雖然Blusehost在30天內可以免費退費,不過就當作是買個保險

兩個主機的概念不同,GCP是雲端主機、Blusehost是共享主機

最大的差別是GCP有自己的實體IP,Blusehost是共用的IP

所以在Blusehost的網站必須綁定網域,這樣從Google Domains指向過來時,才能夠辨識

在GCP的網站管理就要靠自己透過SSH連進主機、資料庫等等來處理

Blusehost會有cpanel功能介面

總之,兩者都有可以進一步學習的內容

 

參考資源

[WP] 透過bitnami在Google cloud platform上架設自動更新憑證的wordpress – Sammy’s Blog

Generate and Install a Let’s Encrypt SSL Certificate for a Bitnami Application

[Solved] All-in-One WP Migration Import Stuck – (Guide 2022)

解除 PHP 上傳大檔案限制,修改 php.ini 設定檔 – G. T. Wang

平凡的幸福: PHP上傳檔案、執行時間、記憶體的限制與修改

How To Edit php.ini File IN Google Cloud – Nahid Mahamud

nano编辑器使用教程 – VPS侦探

Linux 設定 crontab 例行性工作排程教學與範例 – G. T. Wang