實戰篇-手把手教你搭建ghost博客

首先上個成品:eric.com

一.購買域名,服務器

購買的渠道很多,我是直接在阿里云官網把兩個買齊的.買域名沒什么需要注意的,搜一下自己喜歡的域名然后按步驟購買就可以了.
買服務器的話,最低配置就可以滿足需求了,操作系統要選擇UBuntu 64位系統,帶寬1M,具體配置如下:

image

買完服務器之后就可以進行域名解析啦,域名解析如下,添加兩條就可以了
img

二.配置服務器

2.1 連接服務器

Linux/Mac OS X系統的電腦

  1. 打開SSH客戶端
  2. 用戶名:root 實例:120.26.xxx.xxx
  3. 輸入實例密碼進行登錄。

Windows系統的電腦

  1. 下載安裝Windows SSH和Telnet客戶端Putty。 下載Putty
  2. 用戶名:root 實例:120.26.xxx.xxx
  3. 按照Putty使用幫助進行登錄。Putty使用幫助

ssh root@120.26.xxx.xxx
點擊回車,然后輸入你的服務器密碼,如果密碼無誤就會出現歡迎界面.

2.2 安裝Node.js&Nginx

sudo apt-get update sudo apt-get install -y python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js
如果敲上面的代碼出現: add-apt-repository: command not found ,需要先安裝才能繼續進行:
sudo apt-get install python-software-properties sudo apt-get install software-properties-common
安裝完成之后繼續執行下面的命令:
sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
都執行完之后用node -v查看安裝是否成功:v0.10.37
npm -v:1.4.28
接下來安裝Nginx: sudo apt-get install nginx

2.3 安裝MySQL

用MySQL數據庫來管理存儲博客的數據
sudo apt-get install mysql-server
安裝過程中系統會讓你給root用戶設置密碼,

image

如果安裝過程中出現 mysql Access denied for user 'root'@'localhost' (using password:YES) 解決方案:

  1. 打開MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并關閉文件。
  2. 重啟MySQL服務。
  3. 在命令行中輸入“mysql -uroot -p”(不輸入密碼),回車即可進入數據庫。
  4. 執行,“use mysql;”使用mysql數據庫。
  5. 執行,“update user set password=PASSWORD("rootadmin") where user='root';”(修改root的密碼)
    (期間我還select下user表中的記錄,查詢全部的時候顯示了一些亂碼,然后我只查詢了user表中的Host、User、Password字段,貌似當時顯示了3條記錄,有1個沒有名稱。當然,為了解決問題,這些我也管不了了。)
  6. 打開MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存并關閉文件。
  7. 重啟MySQL服務。
  8. 在命令行中輸入“mysql -uroot -prootadmin”,問題搞定!
    實際解決方案:刪除mysql,重新安裝
    安裝完MySQL后,設置utf8
    執行命令: cd /etc/mysql
    編輯my.conf文件: vi my.cnf
    然后去修改一下配置文件,點擊i進入插入模式
    [mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
    編輯完成之后,按ESC 然后 輸入 :wq,保存并退出編輯.然后重啟MySQL,
    service mysql restart
    之后我們來檢查一下修改是否正確,進入MySQL命令行界面:
    mysql -uroot -p
    輸入之前設置的MySQL密碼,然后輸入指令:
    show variables like 'collation%';,檢查鍵值對是否一致,如果不一致,就去打開剛才的配置文件檢查修改的是否有誤.
2.4 創建ghost數據庫,配置Nginx
  • 為ghost創建一個MySQL數據庫,執行如下命令:
    mysql -uroot -p -e 'create database ghost;'
    系統會提示你輸入密碼,輸入剛才設置的MySQL的root用戶的密碼
  • 我們要用Nginx做ghost的前段代理服務.首先進入Nginx目錄下:
    cd /etc/nginx/sites-available/
    然后創建并且編輯ghost.conf配置文件:
    sudo touch ghost.conf
    sudo vi ghost.conf
    server { listen 80; server_name ericze.com; //替換為你自己的域名! location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } }
    然后為ghost.conf文件做一個軟連接到當前目錄下(這一步不知道是為啥),反正照著做吧:
    sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf
  • 通過npm start 啟動ghost的話,如果關閉了遠程連接,Ghost也就停了,因此需要一個文件改動監聽且自動重啟的工具:forever來解決這個問題,輸入一下命令安裝forever:
    sudo npm install forever -g
2.5 安裝Ghost

現在前戲已經做足,重頭戲登場,這里我參考的文章里給的方法都不太對,我稍微花了點時間去查找.因為下載的是zip文件,所以先下載個解壓工具,
進入srv文件夾:cd /srv/
下載解壓工具:sudo apt-get install unzip
然后去下載Ghost: sudo wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip,這個地址是我當時下載的最新版,如果要下載最新版,可以直接去官網拷貝,地址為: Ghost官網下載地址.
然后解壓ghost: sudo unzip ghost.zip -d ghost
解壓之后,進入Ghost目錄修改配置文件:cd /srv/ghost/
拷貝一份配置文件模板:sudo cp config.example.js config.js
然后打開配置文件進行編輯:sudo vi config.js

配置文件里邊有兩種數據庫,上邊的是sqlit3的,把那個注釋掉,然后下邊那個是MySQL的配置,把這個注釋打開,注意操作過程中不要出錯.這里只修改一下生產環境的配置信息,具體修改如下:
// ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { url: 'http://ghostchina.com', //替換為你自己的域名。 mail: {}, database: { updateCheck: false, client: 'mysql', connection: { host : '127.0.0.1', user : 'root', //我們暫且用 MySQL 的 root 賬戶 password : '123456', //輸入你的 MySQL 密碼 database : 'ghost', //我們前面為 Ghost 創建的數據庫名稱 charset : 'utf8' } }, server: { // Host to be passed to node's `net.Server#listen()` host: '127.0.0.1', port: '2368' } },
編輯完成之后最好檢查一下,因為隨便輸錯一個字符,就要從頭排查錯誤,很傷!
比對無誤之后,按ESC,然后輸入 :wq保存并退出編輯.

  • 安裝ghost依賴庫 打開ghost系統的目錄下面的package.json文件,將"sqlite3": "2.2.0", 這一行刪除掉(注意,你看到的 sqlite 版本可能會不一樣,但是,只是 sqlite3 字樣,刪除即可,不要注釋上,一定要把那一行刪除了).
    接下來,進入存放Ghost目錄下,安裝所以來的npm包:
    cd /srv/ghost
    sudo npm install --production
    當所有依賴包安裝好之后,目錄下就多出一個 node_modules 目錄.
終于可以啟動ghost了!

執行如下命令重啟Nginx:
sudo service nginx restart
然后進入ghost文件目錄:cd /srv/ghost
使用forever工具啟動ghost:sudo NODE_ENV=production forever start index.js
然后打開瀏覽器輸入你的域名就可以看到ghost畫面了,如果你的域名沒有備案的話,可以先輸入服務器地址查看頁面,書寫博客。

image

在搭建過程中遇到什么問題,可以聯系我交流問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文章參考自 kitten 的這篇文章和 Ghost 官網王賽寫的這篇文章那么既然已經有人寫了很詳細的文章,為什么我...
    Mitchell閱讀 3,505評論 4 3
  • 博客地址 1. 域名購買 域名就是網址,比如你輸入img421.com(一級域名),而我的博客blog.img42...
    Springer閱讀 2,955評論 4 20
  • 做開發有些時間了,一直希望從高標準嚴格自己,也希望有個特色風格的技術博客,看了喵神的博客,我很喜歡,于是就仿照做了...
    瀾色飛揚閱讀 1,339評論 0 3
  • 最近的脾氣不好,大概不是因為高溫的緣故,而是體內的板塊運動碰撞結果。 工作板塊與學習板塊,摩擦的次數比較多,于是,...
    木徒閱讀 217評論 1 1
  • 長安古道馬遲遲,高柳亂蟬嘶。夕陽島外,秋風原上,目斷四天垂。 歸云一去無蹤跡,何處是前期?狹意生疏,酒徒蕭索,不似...
    李問水閱讀 397評論 0 1