快轉到主要內容

Ghost 0.4.2 跨世代升級到 3.19.2 版本

·1158 字·3 分鐘
Y Cheung
作者
Y Cheung
Blogger, Programer & Traveler.

Y Cheung 從最早的 Ghost 0.1版本就開始嘗試使用 ghost 平台來寫博客了,由於nodjs版本升級太麻煩就沒有慾望升級ghost版本,之後就一直停留在 0.4.2 版本很多年了。終於下定決心要把它更新!(握拳)

理想中的升級是這樣的,先在後台導出json,然後在安裝了最新版本後導入json,再把 /content/image 複製到新安裝的ghost裡,結束。

奈何現實總是骨感的,幸好 Y Cheung 先是在Local電腦上嘗試。新的Ghost終於有docker image了,一條命令飛快就把ghost站點起起來了,然後一步步設置好進入後台,導入json文件⋯⋯GG!提示說要先導入到1.0版本的ghost,再導出json到最新版本。於是開始折騰安裝古老的1.0版本Ghost。

甚麼?!1.0版本的官方文檔不見了!!!Google查找網絡上的其他資源也多數簡略描寫,安裝包地址是甚麼latest,然後引導指向官方文檔。可是官方文檔連結失效了⋯⋯( ̄◇ ̄;) 當時的latest現在也不是了,安裝包地址也用不了 (撓頭)。Y Cheung 只好嘗試從source code安裝。

一開始的想法是git clone source code 切 1.0 的tag。花費6個多小時,最終失敗。mac 上nodejs版本太高不匹配1.0版本的需求,裝不上sqlite3等包。安裝n以後切換到了匹配的nodejs版本6後終於可以運行了,但是不知道為什麼 /core/server/admin/views/ 裡一直是空的,build不出來,按照 「Error: No default engine was specified and no extension was provided.」的說法是要手動把文件拷貝到這裡來,但去哪裡生呢?唉。還是去找了 1.0 Release zip 包。不得不說Github 上翻頁找以前的release包實在太不方便了。

裝好之後,順利的導入json文件,再重新Export content。然後再將文件導入到ghost最新板中。成功!

本地測試成功後就去服務器上升級ghost了。

  • 備份舊ghost站點的文件和數據庫
  • 停止運行舊ghost站點
  • 更新系統nodejs版本

又卡了。系統原先安裝的是nodejs 2.x 版本,當時做了因為nodejs版本問題做了很多設置已經不記得了,導致的結果就是, yum install nodejs 始終在4.x和6.x徘徊,即便我正確添加了 rpm curl -sL https://rpm.nodesource.com/setup_12.x | bash - 。反覆試了很多次,cache也清空了很多次,還是不行。仔細查找,直到在「Fail to install nodejs 8 on CentOS 7」發現有人提及應該執行 yum clean metadata 。解決!終於安裝好了nodejs 12 !

  • 安裝 ghost cli
  • 安裝 ghost
  • 運行 ghost
  • 後台執行import content
  • 複製舊ghost站點的 \content\images 文件夾到新站點的對應位置

事情還沒有結束,後台看起來一切正常了,前台卻加載不了 theme 的 assets 文件,都404了。找問題找了半天,才發現是之前的Nginx的配置文件上的規則設定問題,因為新版本ghost的文件結構變了,所以舊的Nginx 配置文件上的規則涉及到路徑的都需要更新。

Reference

相關文章

Nodejs中使用Async進行流程控制

·321 字·1 分鐘
由於Node.js 是異步編程模型,在流程控制上很麻煩很複雜,幾個簡單的順序步驟就會寫出一堆回調嵌套,很頭疼。試了幾個庫都不能很好的解決這個問題,在同事Michael推薦了Async給我後順利的簡化了不少代碼!

解決本站故障小記

·505 字·2 分鐘
本站突然發生 HTTP502 錯誤,導致幾天不能訪問,又適逢勞動節休假,Y.CHEUNG 沒帶電腦,而且縂想著反正訪問量極低,也就不趕著修復站點,今日才來細細察看一番。

修復SSL_do_handshake() failed 錯誤

·463 字·1 分鐘
最近WP網站遇到了詭異的問題,Jetpack 的統計數據與 Google Analytics 上的不一致,wordpress.com 面板上又顯示無法訪問這個站點,但是 Y Chueng 用瀏覽器打開網站又正常,很奇怪。然後本應該在昨日計劃發佈的 Post 沒有被發佈。太奇怪了。

Laravel 7 配置郵件服務 Mailgun

·595 字·2 分鐘
2016年的時候,Mailgun 免費註冊帳號還能添加自定義域名(當時Y Cheung 曾寫過一篇blog:Centos7 安裝 Postfix 並配置 mailgun 服務),想不到現在新註冊帳號已經是需要先綁定銀行卡才能使用自定義域名,而註冊分配給你的測試域名Sandbox subdomain壓根就不能用,你會遇到類似以下的報錯信息: