莊生趣味 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