首先上個成品:eric.com
一.購買域名,服務器
購買的渠道很多,我是直接在阿里云官網把兩個買齊的.買域名沒什么需要注意的,搜一下自己喜歡的域名然后按步驟購買就可以了.
買服務器的話,最低配置就可以滿足需求了,操作系統要選擇UBuntu 64位系統,帶寬1M,具體配置如下:
買完服務器之后就可以進行域名解析啦,域名解析如下,添加兩條就可以了
二.配置服務器
2.1 連接服務器
Linux/Mac OS X系統的電腦
- 打開SSH客戶端
- 用戶名:root 實例:120.26.xxx.xxx
- 輸入實例密碼進行登錄。
Windows系統的電腦
- 下載安裝Windows SSH和Telnet客戶端Putty持搜。 下載Putty
- 用戶名:root 實例:120.26.xxx.xxx
- 按照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 ,需要先安裝才能繼續(xù)進行:
sudo apt-get install python-software-properties sudo apt-get install software-properties-common
安裝完成之后繼續(xù)執(zhí)行下面的命令:
sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
都執(zhí)行完之后用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用戶設置密碼,
如果安裝過程中出現 mysql Access denied for user 'root'@'localhost' (using password:YES) 解決方案:
- 打開MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并關閉文件几苍。
- 重啟MySQL服務般妙。
- 在命令行中輸入“mysql -uroot -p”(不輸入密碼)阻逮,回車即可進入數據庫。
- 執(zhí)行娩梨,“use mysql;”使用mysql數據庫沿腰。
- 執(zhí)行,“update user set password=PASSWORD("rootadmin") where user='root';”(修改root的密碼)
(期間我還select下user表中的記錄狈定,查詢全部的時候顯示了一些亂碼颂龙,然后我只查詢了user表中的Host、User纽什、Password字段措嵌,貌似當時顯示了3條記錄,有1個沒有名稱芦缰。當然企巢,為了解決問題,這些我也管不了了让蕾。) - 打開MySQL目錄下的my.ini文件浪规,刪除最后一行的“skip-grant-tables”,保存并關閉文件探孝。
- 重啟MySQL服務笋婿。
- 在命令行中輸入“mysql -uroot -prootadmin”,問題搞定顿颅!
實際解決方案:刪除mysql,重新安裝
安裝完MySQL后,設置utf8
執(zhí)行命令: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 創(chuàng)建ghost數據庫,配置Nginx
- 為ghost創(chuàng)建一個MySQL數據庫,執(zhí)行如下命令:
mysql -uroot -p -e 'create database ghost;'
系統會提示你輸入密碼,輸入剛才設置的MySQL的root用戶的密碼 - 我們要用Nginx做ghost的前段代理服務.首先進入Nginx目錄下:
cd /etc/nginx/sites-available/
然后創(chuàng)建并且編輯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也就停了,因此需要一個文件改動監(jiān)聽且自動重啟的工具: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的配置,把這個注釋打開,注意操作過程中不要出錯.這里只修改一下生產環(huán)境的配置信息,具體修改如下:
// ### 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 創(chuàng)建的數據庫名稱 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了滔驶!
執(zhí)行如下命令重啟Nginx:
sudo service nginx restart
然后進入ghost文件目錄:cd /srv/ghost
使用forever工具啟動ghost:sudo NODE_ENV=production forever start index.js
然后打開瀏覽器輸入你的域名就可以看到ghost畫面了,如果你的域名沒有備案的話卿闹,可以先輸入服務器地址查看頁面揭糕,書寫博客。
在搭建過程中遇到什么問題锻霎,可以聯系我交流問題著角。