摘要:后記昨天第一次聽說,一時興起今天花了半天的時間從開始搗鼓,只會基本使用,也記不清多久沒碰過了,不涉及高級使用姿勢,像改主題改文件支持某些特性等等。
后記
昨天第一次聽說ghost,一時興起今天花了半天的時間從0開始搗鼓,node只會基本使用,js也記不清多久沒碰過了,不涉及高級使用姿勢,像改主題、改js文件支持某些特性等等。個人能力不夠,也沒有興趣深入研究,就是為了看看這東西怎么用。
自己安裝部署的部分就是完全照搬官方文檔,沒有摻雜任何原創性的姿勢,可能略有修改或說明不準確的地方完全是個人失誤。
Docker部分是自己嘗試用的,因為平時幾乎不自己裝任何服務了,能用docker的就用docker了,這里也不涉及docker安裝和使用的相關說明。
最后吐槽一點:完全配置結束后我把這篇全部粘貼發布到ghost,那叫一個難看,一點都不優雅,看來美還是需要精心調整的啊。最可惡的是竟然不支持表格...,查了一下,有方法支持,但是到此為止對我個人來講已經沒有必要繼續了。
為什么把后記放到前面?因為看到這里如果沒興趣可以不要繼續浪費時間了...
安裝 安裝node到node官網下載安裝包
傻瓜安裝,會同時安裝node和npm (macOS)
node版本不要太高,官方目前支持到4.xLTS
安裝并運行ghost下載ghost包,下載地址
找個目錄解壓,注意解壓目錄就是安裝目錄
終端進入解壓目錄執行 npm install -production,等提示,沒錯誤就OK,有錯誤解決錯誤
安裝結束后執行:npm start就開啟了ghost服務
訪問localhost:2368查看主頁,后臺管理地址為localhost:2368/ghost
部署:保持運行 使用Forever保持Ghost在后臺運行并在進程crash時重啟服務
安裝forever
npm install forever -g
ghost目錄運行
NODE_ENV=production forever start index.js
結束進程與查看進程
forever stop index.js forever list使用PM2,這個比forever強大
安裝PM2
npm install pm2 -g
運行ghost服務
NODE_ENV=production pm2 start index.js --name "Ghost"
停止、重啟服務
pm2 stop Ghost pm2 restart Ghost # reload熱重啟 pm2 reload Ghost
遠程部署,不需要,需要時再看pm2文檔@deploy
初始化腳本,服務自啟動
pm2 startup # 保存當前進程 pm2 saveSupervisor
安裝supervisor并啟動
# debian/ubuntu apt-get install supervisor # fedora/centos yum install supervisor # 運行 service supervisor start
創建ghost啟動腳本 /etc/supervisor/conf.d/ghost.conf
cat > /etc/supervisor/conf.d/ghost.conf [program:ghost] command = node /path/to/ghost/index.js directory = /path/to/ghost user = ghost autostart = true autorestart = true stdout_logfile = /var/log/supervisor/ghost.log stderr_logfile = /var/log/supervisor/ghost_err.log environment = NODE_ENV="production" ctrl-d
啟動與停止ghost
supervisorctl start ghost supervisorctl stop ghost初始化腳本: ubuntu
創建腳本
sudo curl https://raw.github.com/TryGhost/Ghost-Config/master/init.d/ghost -o /etc/init.d/ghost
打開該文件修改:GHOST_ROOT為ghost安裝目錄,DAEMON為node運行目錄
創建用戶并修改權限
sudo useradd -r ghost -U sudo chown -R ghost:ghost /path/to/ghost sudo chmod 755 /etc/init.d/ghost
ghost服務管理
sudo service ghost start sudo service ghost stop sudo service ghost restart sudo service ghost status
注冊系統啟動
sudo update-rc.d ghost defaults sudo update-rc.d ghost enable
注意當前用戶權限
sudo adduser USERNAME ghost配置詳解(config.js)
安裝ghost后,會在安裝目錄生成默認配置文件config.js,內容復制自config.example.js文件,可以修改配置域名、郵箱、數據庫、資源目錄等等。
配置項:名稱 | 是否必須 | 描述 |
---|---|---|
url | Y | 設置blog的url |
Y | 設置郵件,用于找回密碼和邀請成員 | |
database | Y | 配置數據庫,默認使用sqlite3 |
server | Y | ghost服務監聽地址與端口 |
compress | N | 開啟gzip壓縮 |
fileStorage | N | 開啟本地存儲 |
updateCheck | N | 禁止使用,用privacy.useUpdateCheck代替 |
privacy | N | 功能管理,如update check,rpc ping, google fonts |
forceAdminSSL | N | 強制開啟后臺管理SSL訪問,需配置SSL |
urlSSL | N | 定義第二個url用于SSL訪問 |
paths | N | 自定義content目錄 |
maintenance | N | 維護模式 |
referrerPolicy | N | 配置referrer metadata屬性 |
url
配置ghost服務URL,需要保持與訪問地址一致,指定完整域名,例如:http://ghost-blog.com
email
郵箱用于找回密碼,邀請成員,官方說后面會增加郵件訂閱等更多服務
mail: { // 自定義from字段:默認為 Blog Titlefrom: "name@address.com", transport: "SMTP", options: { host: "smtp.126.com", secureConnection: false, port: 25, auth: { user: "name@126.com", pass: "xxxxxx" } } }
ssl 配置
第一種方式是修改url配置前綴https://,開啟全站SSL
第二種只開啟管理后臺SSL:forceAdminSSL: true, http訪問會自動跳轉
也可以禁止http訪問不跳轉,直接返回403:forceAdminSSL: {redirect: false}
database
ghost默認配置使用SQLite作為數據庫存儲,但同時也支持MySQL和Postgres,Postgres支持有點小問題,這里不做說明,mysql配置實例:
database: { client: "mysql", connection: { host : "0.0.0.0", user : "ghost", password : "", database : "ghost_testing", charset : "utf8" }, // 可以配置pool修改連接池大小,這里是默認值 pool: { min: 2; max: 10 } },
server
配置ghost服務監聽地址:
server: { host: "127.0.0.1", port: "2368" } # 也可以配置為socket監聽: server: { socket: { path: "path/to/socket.sock", permissions: "0666" } }
gzip compression
默認開啟,需要關閉修改:compress: false
fileStorage
開啟/關閉文件存儲,有些服務器不支持持久存儲的文件系統,所以禁止上傳圖片,關閉后:fileStorage: false,上傳圖片時將只允許輸入圖片url
paths
ghost默認的content目錄就在安裝目錄,可以通過paths配置自定義路徑,如:
paths: { contentPath: path.join(__dirname, "path/to/content/dir") },
privacy
需要關閉所有可配置的功能科室直接配置useTinfoil,開啟后所有privacy配置都將失效
privacy: { useTinfoil: true } //多帶帶配置每一項: privacy: { // 更新檢查,不訂閱官方郵件不會收到通知 useUpdateCheck: false, // 使用谷歌字體服務,但不影響theme中使用的Google Fonts useGoogleFonts: false, // 使用哦Gravatar檢測服務,默認會檢查郵箱是否是Gravatar賬戶 useGravatar: false, // 使用RPC Ping服務,默認開啟 useRpcPing: false, useStructureData: false }
maintenance
開啟維護模式將返回503響應:maintenance: { enabled: true }
referrerPolicy
配置referer metadta屬性,更多關于referrer policy參考W3C@referrer
安裝nginx,不在這里扯
配置
# 創建虛擬主機配置文件 cat > /etc/nginx/sites-available/ghost.conf server { listen 80; server_name example.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } } ctrl-d # 軟鏈配置文件 sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
重啟nginx生效
sudo service nginx restart
解析域名
SSL配置獲取證書,正式的話就花錢買吧
復制證書到nginx目錄
mkdir /etc/nginx/ssl cp server.crt /etc/nginx/ssl/server.crt cp server.key /etc/nginx/ssl/server.key
修改ghost-nginx配置/etc/nginx/sites-available/ghost.conf
server { listen 80; listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368; } }
重啟nginx
強制要求admin用戶使用HTTPS,修改配置文件:forceAdminSSL: true
升級 準備工作備份
登錄管理后臺,訪問Labs設置頁:yourblog.com/ghost/settings/labs/,導出數據.json文件,備份content目錄
確認服務重啟命令
升級后需要重啟服務,確認安裝時使用的服務管理方式forever/pm2/supervisor
跨版本升級,和我沒大關系
升級步驟
下載新版ghost
curl -LOk https://ghost.org/zip/ghost-latest.zip
解壓到一個臨時目錄,不要直接覆蓋原安裝目錄
unzip ghost-latest.zip -d ghost-temp
進入當前ghost安裝目錄,刪除core目錄
cd path/to/ghost rm -rf core
進入臨時解壓目錄,復制文件
cd path/to/ghost-temp cp -R core path/to/ghost cp index.js *.json path/to/ghost cp -R content/themes/casper path/to/ghost/content/themes
回到安裝目錄升級ghost
cd path/to/ghost chown -R ghost:ghost * npm install --production
重啟服務
# 注意使用安裝時的服務管理方式 service ghost restart forever restart index.js pm2 restart ghostDocker方案: 去他的一坨~ 下載nginx、ghost鏡像
這兩個服務都有官方鏡像源,直接下載(非必須)
docker pull ghost docker pull nginx運行ghost
# 運行并掛載本地content目錄到容器 docker run --name ghost -e NODE_ENV=production -v /path/to/ghost-content:/var/lib/ghost --restart=always -d ghost # 后面使用nginx代理,所以這里不做端口映射,默認暴露`:2368`端口 # content目錄可以包含自定義配置文件config.js,默認會自動復制config.example.js文件到content目錄config.js # 建議提前準備好自己的配置文件,默認production的配置是不完整的 # 注意NODE_ENV環境變量,不設置為production時默認為development # 每次修改完配置文件重啟: docker restart ghost運行nginx
# 運行并掛載配置文件 docker run --name nginx -v path/to/nginx.conf:/etc/nginx/nginx.conf -v path/to/ghost.conf:/etc/nginx/conf.d/ghost.conf --link ghost:GHOST_HOST --restart=always -p 80:80 -d nginx # 注意這里需要同時掛載nginx服務配置和ghost代理配置 # 兩個配置文件雖然不是必須從容器外掛載,但還是分離開方便維護 # 注意修改上面示例中 ghost.conf 文件:proxy_pass: http://GHOST_HOST:2368參考資料
官方文檔
中文文檔
PM2官網
forever包
ghost-docker鏡像
nginx-docker鏡像
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26668.html
摘要:使用搭建個人博客作為一個技術人員,一般都會有寫一些博客,分享一些文章咱們做技術的就是愛分享。下面我就簡單講解一下在系統下如何使用搭建搭建個人博客網站。 使用Ghost搭建個人博客 作為一個技術人員,一般都會有寫一些博客,分享一些文章(咱們做技術的就是愛分享)。因此也誕生了非常多的開源博客系統,比如像wordpress也是目前世界最流行,應用最廣的一個天源博客系統,有非常多的插件及模版。...
閱讀 2649·2019-08-30 15:53
閱讀 2875·2019-08-29 16:20
閱讀 1084·2019-08-29 15:10
閱讀 1022·2019-08-26 10:58
閱讀 2195·2019-08-26 10:49
閱讀 633·2019-08-26 10:21
閱讀 705·2019-08-23 18:30
閱讀 1638·2019-08-23 15:58