-
- 我還是離開了 Cloudways
- 當初為何選擇 Cloudways?
- 為何離開 Cloudways?
- 什麼人適合 Cloudways?
- 離開 Cloudways,還能選擇什麼?
- 結語
- 考完學測的高三生
- 如何在 VPS 安裝免費的 cPanel 控制台?
- 前言
- Hestia Control Panel (HestiaCP)
- 結語
- WordPress 最輕鬆的搬家方法
- WordPress 外掛 – Duplicator
- 使用方法
- 後記
- Pixel 手機退換貨紀錄
- 流程
- Pixel 手機如何刷機、降版?
- 前置作業
- 開始刷機
- Kobo 電子書閱讀器使用心得
- OUTPUT 最高學以致用法讀後感
- Cloud Functions for Firebase 跟 Google Cloud Functions 差在哪?
- 使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 13 ~ 14
- 前言
- 筆記
我還是離開了 Cloudways

Cloudways 用兩年了,最近發現網站越來越慢,當我嘗試連進去機器除錯,卻發現無法取得最高權限。趁著在年假期間,搜尋完各家主機商的比較資訊後,便開始處理網站搬家事宜。
當初為何選擇 Cloudways?
我最初是使用共享主機空間,所有設定都在 cPanel 處理;後來改用 VPS,最大的痛點在於不夠熟悉 Linux,架站的大多需求都可以完成,但細部的設定卻需要耗費不少時間成本;之前的主機代管服務其實帶來很多便利,我只要專注在內容產出即可。Cloudways 提供主機代管服務,同時又讓使用者享有 VPS 的優勢,這個選擇可以省下不少麻煩。
為何離開 Cloudways?
一部分是前言提到的效能問題,但最令人沮喪的是:當我試圖打開 Cloudways 這個便捷服務的外盒,卻發現裡頭是我無法控制的事物,沒有 root 權限的 VPS 還算是 VPS 嗎?
仔細一想,我其實只是懶得連到機器裡頭敲指令跟調教設定;目前網路上有開源專案可以讓我們更輕鬆地去管理主機,有的是網站形式的控制台,像 cPanel 那種;有的是指令式的管理程式,一行指令就可以架站、最佳化設定。不管是哪種都滿足我當下的需求。
什麼人適合 Cloudways?
- 不懂 VPS 但想要擁有 VPS 的運算資源
- 沒有預算壓力
像我就是免費仔的出身背景,很多時候都會有成本考量,這種錙銖必較的個性多看幾眼 Cloudways 的價目表就會坐立難安;若是單純花錢買方便,我覺得 Cloudways 是很棒的選擇。又或是沒有相關技術背景的朋友,還是會推薦使用。
離開 Cloudways,還能選擇什麼?
Cloudways 提供舒服的方案讓使用者輕鬆架站並擁有獨立的主機資源,若打算離開,必須付出一些代價,這會讓我們沒辦法那麼愜意,例如:必須試著敲些指令;若要犧牲的是主機資源,保有一開始的舒適感,那就是回頭去用虛擬主機,這邊就不討論,我還是更愛 VPS 一些。
看到這邊,我會假設你可能是:
- 有用過 Linux,但不太熟
- 每分錢都要花在刀口上的個性
- 略懂 Linux,但還是覺得設定的過程很惱人
- 單純來看熱鬧的
不熟 Linux 的人
對於不太熟悉 Linux 指令的朋友,我會建議使用網頁介面的後台管理系統,只要點幾下按鈕就能滿足你的願望;最困難的部分應該就是下指令安裝 HestiaCP,但安裝教學已經準備好了:
使用 LEMP 的人
你已經熟悉 LEMP 的設定,但每次新增或修改網站還是覺得很沒效率,那我會建議使用 Webinoly 來降低這些瑣碎工作的煩躁感。什麼?你用 Apache?那你還是可以試試上面提到的 HestiaCP。
只想寫程式的人
例如我,技能幾乎是點在開發程式上,SRE 的技能點得不夠多,但又需要部署各種程式到主機上。雖然強烈懷疑這族群的使用者應該不會用 Cloudways(這更適合用 Heroku 才對),沒關係,還是有些很不錯的開源專案可以滿足這項需求。
Heroku 的開源替代方案,最常看到的是 Dokku,適合喜歡敲指令的朋友們:
Dokku – The smallest PaaS implementation you’ve ever seen若想要有網頁介面,那我會推薦使用 CapRover;對我來說,這樣的控制台更貼近使用 Heroku 的感覺:
兩套軟體都支援 php 及其他程式語言,非常適合需要部署多種程式的人。
專注在內容的人
如果想專注在內容,我推薦使用 WordPress.com,原因無他,WordPress 是全世界佔有率最高的內容管理系統,如果能得到原廠的支援是再好不過了。
P.S. NASA 也是使用 WordPress 的服務。
結語
這次搬家讓我每個月節省 52% 的網站支出,也換了一套自己熟悉的開源專案來管理主機,大家不妨來審視一下自己主機的使用狀況,也許會有意想不到的收穫。
-
考完學測的高三生

一月底我妹考完學測(對,我們相差 14 歲),過年期間回鄉下,就跟他聊了一些選系跟未來就業的話題。就結論來看:我妹對未來沒有想法;他不知道未來想要做什麼、不覺得自己有任何專長,也不了解自己對什麼有興趣。
你還那麼年輕,眼神還如此清澈,你說對未來沒有想法,那又何妨?我甚至好奇:到底有多少高三生知道自己未來的模樣。當年選系,有印象的,只有家裡開藥局的同學確定要填藥學系,但多數同學對於要填的系也是懵然無知,又或者,填上父母、師長的期望,或是從高分的系開始填。
我記得我一開始最想填中文系,因為自己擅長寫作,未來的職業自然是作家、詩人之流。但班導師苦勸我填電資學院的科系,因為我的分數填中文系太浪費。「你看陳之藩也是電機博士呀!他也是繼續寫作。」半推半就下就填了個資工系,因為我愛打電動,想說開發遊戲好像也滿有意思。但我的經驗證明:當初預期跟實際發生的未來可能落差甚大。
你還那麼年輕,不到處去撞撞看怎麼知道自己會去哪裡?你還有時間可以探索,不是嗎?儘管如此,我還是有點擔心:你對嘗試感到無所謂的心態。我希望你足夠勇敢,並保持好奇,關於未知的事物都去嘗試看看。即便到我這個年紀,還是會體驗新事物,我經常在想:若能再挖掘到喜歡的事物就太好了。沒有試過,怎麼會知道自己喜不喜歡?
最後靠北一下,我記得當時升學資料的講義副標題是:選你所愛、愛你所選;怎麼十幾年過去,高中生還是沒有足夠的管道去了解大學系所與未來出路?
-
如何在 VPS 安裝免費的 cPanel 控制台?

前言
還記得小時候使用 php 虛擬主機時,幾乎每間主機商都使用 cPanel 控制台,所有的需求都可以在 cPanel 裡頭設定完成;自從改用 VPS 後,每次都要連進主機敲指令才能達到目的。雖說指令敲久也習慣了,但有時還是會想起使用 cPanel 的美好時光,難道 VPS 就不能裝 cPanel 嗎?
當然可以,但 cPanel 基本方案就可以再多租一台主機了,我個人不太推,因為會用 VPS 的人應該都有能力找到替代方案,下述連結是 cPanel 價目表:
PricingFind a plan that's right for you. Try cPanel & WHM month-to-month.Hestia Control Panel (HestiaCP)
本篇文章其實是要介紹 cPanel 的替代方案:Hestia Control Panel;HestiaCP 是一套開放原始碼的控制台,凡舉:域名管理、DNS 設定、資料庫建立⋯⋯等都可以在後台設定,常用的 cPanel 功能都能在這裡找到。
系統展示與試用:
LOGIN – demo.hestiacp.com – Hestia Control Panel
後台首頁。 
提供常見服務的一鍵安裝。 
可以在使用者頁面將語言改成中文。 HestiaCP 還是 VestaCP?
搜尋 HestiaCP 會出現 VestaCP 的結果,因為 HestiaCP 是從 VestaCP 修改而來的,細看甚至可以發現安裝方法也一模一樣;兩套控制台的核心功能大同小異,那為何我選擇 HestiaCP?
選擇 HestiaCP 是因為它的發版頻率比較高,讓我覺得安心。截至今天為止,VestaCP 只發佈了 3 個版本;但 HestiaCP 已經發佈了 43 個版本,幾乎每個月都有新版本。這意味著 HestiaCP 更有機會推出新功能或是錯誤修正,VestaCP 看起來則像是個沒人照顧的孤兒。
安裝
GitHub – hestiacp/hestiacp: Hestia Control Panel | A lightweight and powerful control panel for the modern web.Hestia Control Panel | A lightweight and powerful control panel for the modern web. – hestiacp/hestiacp系統需求
目前 HestiaCP 支援下列作業系統:
Debian
- 10
- 11
Ubuntu
- 18.04 LTS
- 20.04 LTS
- 22.04 LTS
要留意 HestiaCP 不支援 32 位元的作業系統。
安裝流程
首先要以 root 帳號登入系統。
下載安裝檔:
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh執行安裝檔:
bash hst-install.sh
安裝成功的畫面。 安裝完會需要重開機,此時按任意鍵就會自動重開了;待重開機結束,就可以用上圖的網址與帳密登入 HestiaCP。
客製化安裝
HestiaCP 預設包了很多服務,如果有客製化安裝需求可以使用它的安裝指令產生器:
https://gabizz.github.io/hestiacp-scriptline-generator/像我本身就用不到 Apache、Vsftp 跟 Bind,產出的安裝指令就會如下:
sudo bash hst-install.sh --apache no --phpfpm yes --multiphp no --vsftpd no --proftpd no --named no --mysql yes --postgresql no --exim yes --dovecot yes --sieve no --clamav yes --spamassassin yes --iptables yes --fail2ban yes --quota no --api yes --interactive yes --with-debs no --port '8083' --hostname 'HostiaCP網域' --email '信箱' --password '密碼' --lang 'en'其他設定
如果需要修改 php.ini 設定,你可以在 /etc/php/[版本號]/fpm 找到它。別忘了修改完畢要重啟 nginx 以及 php,下述指令以 php 8.0 為例:
sudo service nginx restart sudo service php8.0-fpm reload備份還原
我剛好有使用它的備份、還原功能來執行主機搬家,整體滿方便的。流程是先備份帳號,將備份檔傳到新的 HestiaCP 的主機即可還原。下述範例均以 jarvis 當作 HestiaCP 的帳號名稱,所有指令均以 root 登入主機執行。
備份帳號
v-backup-user jarvis在舊主機下指令,此時會產出名稱格式為 jarvis.2020.01.01-00-00.tar 的備份檔案。
傳送備份檔案
scp /backup/jarvis.2020.01.01-00-00.tar root@新主機IP:/backup/在舊主機下指令,將檔案傳到新主機。
還原帳號
v-restore-user jarvis jarvis.2020.01.01-00-00.tar在新主機下指令,將收到的備份檔案還原。還原後重新整理網頁端的 HestiaCP 即可看到匯入的帳號以及底下的所有網站、資料。
結語
剛從虛擬主機空間轉換到 VPS 的使用者,可能還是比較習慣網頁式的後台管理系統,又或者還不熟悉 Linux 的指令。HestiaCP 提供一套完善的系統,讓 VPS 使用者不用敲太多指令,就可以使用網頁後台並同時享有 VPS 的優勢。
-
WordPress 最輕鬆的搬家方法

從 2010 年到現在,這個網站已經搬遷無數次了,每次搬家的方法也都不太一樣:有的是從主機供應商的後台打包,有的是進機器下指令 dump 資料,有的是直接在 WordPress 匯出。那麼,有沒有什麼方法可以輕鬆寫意地搬家到其他主機空間呢?
WordPress 外掛 – Duplicator
Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & MoreThe best WordPress backup and migration plugin. Quickly and easily backup ,migrate, copy, move, or clone your site from …最近搬了三個網站,都是使用這套 WordPress 外掛來搬家。除了簡易使用,它也提供轉移前、後的檢查以及問題排除的功能;像我就有被抓到資料庫編碼的問題,幸好這套外掛有提供修正的功能,讓我省下不少時間,。
使用方法
WordPress 外掛 – Duplicator 的操作分為兩個部分:備份及還原,其中只有備份時會用到這套外掛。
備份
安裝好 Duplicator 後,就可以在後台的外掛頁面開始備份。

點擊 Create New 建立備份檔。 
按 Next 繼續下一步。 
檢查完畢後,點擊 Build 建立備份檔。 
點擊下載 Installer 以及 Archive 兩個檔案。 還原
可以在空的主機空間還原,或是在既有的 WordPress 網站上直接覆蓋資料;本次操作是在既有的 WordPress 網站上覆寫。

首先要把備份檔上傳到 WordPress 的根目錄。 
接著要開啟剛才上傳的 installer.php,用瀏覽器開啟這個檔案的網址,例如:jarvislin.com/installer.php。成功開啟後要輸入 archive 備份檔案的名稱,並按下 Submit 送出。 
第一步,勾選完畢後點擊 Next。 
第二步,要清除資料,點擊 Test Database 確認是否沒問題。 
我被抓到資料庫編碼的問題,它叫我去 Option 勾選 Legacy,若沒遇到此問題可以略過。 
若都通過就可以按 Next 到下一個步驟。 
第三步,點擊 Next。 
第四步,顯示還原結果,勾選 Auto delete installer…,點擊 Admin Login 來登入網站,此時帳號密碼已經被替換成原本網站的了, 
登入後會顯示備份檔案已經移除成功的訊息。 後記
轉移主機空間是一件麻煩的事,我覺得 Duplicator 提供了很舒服的轉移體驗,免除了繁雜的步驟,也省了不少時間,下一次換主機空間不妨用這套外掛來試試看。
-
Pixel 手機退換貨紀錄

大約是今年十一月開始,我的手機待機時間無法超過四個小時。當時也沒多想,畢竟自己大多時候都待在可充電環境。到了十二月底,這個症狀惡化到電量以兩秒 1% 的速度在掉,有時電量超過 40% 也會直接關機,嚴重影響我的日常生活。
查了一下手機災情,才發現我也是電池膨脹的受害者,也因為很多人即便過保,還是得到了換機的機會,因此嘗試走了一遍客服流程。
流程
首先會需要聯絡客服,填寫一些相關問題:
(閱讀全文…)Sign in – Google Accounts -
OUTPUT 最高學以致用法讀後感

前陣子面試了幾位專案經理,剛好其中一位擁有自己的部落格,便隨意看了看內容;裡頭分享了一本我滿感興趣的書籍:最高學以致用法:讓學習發揮最大成果的輸出大全。
「你是否曾看了大量書籍,但最後卻覺得跟沒看一樣?」
大概是這個概念抓住了我的眼球;我覺得我每天都在瘋狂吸收資訊,但還真的是看過就忘了,有吸收進去的內容少之又少,我想要改善這個狀況。
(閱讀全文…) -
Cloud Functions for Firebase 跟 Google Cloud Functions 差在哪?

不知道大家有沒有注意過:Cloud Functions 除了出現在 Google Clould 裡頭,在 Firebase 也看得到它的身影,一樣的服務為何要放在兩個地方?還有,它們倆真的一樣嗎?
當然,第一個問題只有官方知道,我也只是猜測而已:在 Firebase 剛推出時,強調開發者專注寫程式就好,剩下的 Firebase 會幫我們搞定。Google Clould 服務五花八門,很多服務不是單純寫程式可以理解的,不少服務還要具備伺服器管理經驗才有機會接觸,對於純粹寫程式的開發者而言就沒這麼友善。而 Cloud Functions 也是專注在寫程式的服務,跟 Firebase 的初衷如出一轍,將 Cloud Functions 放在 Firebase 當然沒問題。
至於第二個問題,它們一樣嗎——答案是否定的。我是先從 Google Cloud Functions 開始使用,最近的 Side Project 才用了 Cloud Functions for Firebase,一開始我以為兩者相同,但沒多久我就意識到:差多了!
(閱讀全文…) -
使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 13 ~ 14

前言
邏輯、流程的部分都已經處理掉了,接下來應該是把畫面跟定義好的程式串起來就會動了;課程也即將進入尾聲。
筆記
Flutter TDD Clean Architecture Course [13] – Dependency Injection
Flutter TDD Clean Architecture Course [13] – Dependency Injection – Reso CoderSubscribe Get the full project We have all of the individual pieces of the app architecture in place. Before we can uti…這集主要是要教學 dependency injection,在 Android 專案我習慣用 Koin 來處理這個需求,因為建構子實在需要太多東西了,假設 10 個地方需要 NumberTriviaBloc,那我就必需手動準備好 30 個參數。有了 DI 可以加速我們開發,只要宣告一次 NumberTriviaBloc,就可以到處使用。
(閱讀全文…)
首頁








