什么是Ghost
Ghost 是一套基于 Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写,目标是取代臃肿的 Wordpress。
自己用了多年的Wordpress后来真的是审美疲劳了,后来无意中看到了Ghost大爱,终于有时间来研究以下了。经过不懈努力终于搭建成功,现在就写下来记录以下咯。
环境
- linode 2014
- CentOS
6.5_x647.0_x64 #本想用7的但是一堆麻烦后来放弃了 - Node v0.10.40 # 官方建议版本
- Nginx
1.801.9.13(支持http2) Mysql 5.1.73Mariadb- Ghost v0.7.4
安装
初始化VPS
因为自己用的是linode的服务器,是没有C和C++编译的,需要先做些准备工作
yum update #更新yum源
yum groupinstall "Development Tools" #安装开发工具组包
yum install wget #这个一般用不着
安装Node
Ghost是基于Node.js构建的开源博客平台,所以我们首先搭建Node环境。
wget http://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz
tar zxvf node-v0.10.40.tar.gz
cd node-v0.10.40
./configure
make && make install
上步执行之后,可以通过以下方法检查是否安装完成。
node -v
v0.10.40
如果显示了v0.10.40就说明你安装成功了,那么我们可以继续后面的步骤了。
Nginx的安装
虽然说Ghost是一个独立的程序了,但是官方推荐最好要用Nginx来挂载一下的。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。
因为linode的源里面是没有Nginx的,所以首先要在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo
vim /etc/yum.repos.d/nginx.repo #一般来说我喜欢vim,因为vi没有代码高亮看起来不舒服
写入以下内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
保存(退出输入:X就可以了,不会的自己百度以下,实在不行就用SFTP下载回来改吧)继续下面操作
yum install nginx -y # 安装Nginx
service nginx start # 启动Nginx
chkconfig nginx on # 设置开机启动Nginx
这样Nginx就安装成功了,在浏览器中输入你的VPS的IP正确的话就可以看到“熟悉”的Nginx提示了。
配置Nginx
Nginx安装完成后,我们需要设置一个代理服务器让我们的博客可以使用域名访问。 在/etc/nginx/conf.d目录下创建一个配置文件ghost.conf
vim /etc/nginx/conf.d/ghost.conf #vim是可以直接创建文件的哦
写入如下的内容
server {
listen 80 http2;
server_name example.com; #将 example.com 改为你的域名或ip。
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
保存后重启Nginx
service nginx restart
这样子就好了。
安装MySQL
Ghost 默认使用 sqlite3 数据库,但一般自己习惯了MySQL所以这里还是改用MySQL了,不用的话就跳过这一步好了。
yum install mariadb mariadb-server # 安装MariaDB
systemctl start mariadb # 启动MariaDB
systemctl enable mariadb # 设置开机启动MariaDB
然后开始MySQL的初始化
mysql_secure_installation
Set root password? [Y/n] # 设置root密码
anonymous users? [Y/n] # 删除匿名用户
Disallow root login remotely? [Y/n] # 禁止root用户远程登录
Remove test database and access to it? [Y/n] # 删除默认的test数据库
Reload privilege tables now? [Y/n] # 刷新授权表使修改生效
上面的内容根据需要修改自己来改吧,默认的ROOT用户是没有密码的,直接输入回车就好了
接下来就是要配置MySQL了,让它可以“读写”中文,这一步对于要用中文字符的国内用户来说很重要的
vim /etc/my.cnf
写入如下内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
保存退出重启MySQL服务
service mysqld restart
然后件里一个数据库来存放ghost的数据
mysql -u root -p # 输入设置好的密码
create database ghost; # 创建ghost数据库
grant all privileges on ghost.* to 'ghost'@'%' identified by '123456'; # 新建一个用户ghost,密码为123456,随意更改啦
flush privileges; # 重新读取权限表中的数据到内存,不用重启mysql就可以让权限生效
安装Ghost
下载中文的用下面的命令
mkdir /var/www #这里将/var/www目录作为博客根目录
cd /var/www
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip
unzip Ghost-0.7.4-zh-full.zip -d ghost
cd ghost
原版的就下面的
mkdir /var/www //这里将/var/www目录作为博客根目录
cd /var/www
wget https://ghost.org/zip/ghost-latest.zip
unzip ghost-latest.zip -d ghost #latest保证是最新的版本
cd ghost
随后修改配置文件
cp config.example.js config.js
vi config.js
对生产模式进行改造
# 生产模式
production: {
url: 'example.com', # 修改为你的域名或者IP,注意加上http://
mail: {},# 此处还没成功调试出非官方推荐的SMTP,有空再试
database: {
client: 'mysql'
connection: {
host : '127.0.0.1',
user : 'ghost', # 数据库连接的用户
password : '123456', # 先前创建的密码
database : 'ghost', # 先前创建的数据库
charset : 'utf8'
},
server: {
host: '127.0.0.1',
port: '2368' # 若修改该端口记得在nginx中做相应改变
}
}
保存退出,开启ghost尝试以下。
npm install --production
npm start --production
启动浏览器,输入之前配置的域名或者IP,我们就可以看到建立好的Ghost博客啦。 (Ctrl+C 可以关闭)
至此Ghost算是安装完毕了,下面要解决一个问题就是如何让Ghost持续工作了。
让Ghost持续运行
方法有很多我自己用的是
PM2PM2
另外的还有Forever(https://npmjs.org/package/forever)
Forever这里有用法指导
Supervisor(http://supervisord.org/)
下面我写以下PM2咯
cd /var/www/ghost
npm install pm2 -g # 安装PM2
NODE_ENV=production pm2 start index.js --name "ghost"
pm2 startup centos #如果是其他系统把后面的centos换掉
pm2 save
下面是PM2的几个命令
pm2 start ghost # 用PM2开启ghost
pm2 restart ghost # 用PM2重启ghost
pm2 stop ghost # 用PM2关闭ghost
完成Ghost的最后一步
最后一步很简单,只要在浏览器中根据要求完成操作就好了,有3步(其实就两步,邀请好友基本不用的)这样子你就可以开始你的Ghost博主之旅了。
不过这里说一句Ghost自己没有评论功能的,你需要用其第三方工具来解决。
最后的Tips
因为我自己是工科生有很多代码要输入的,而Ghost自带的Markdown是没有代码高亮的,而我用的主题也不带我们专业要用的HDL和Matlab的高亮,所以自己找了一个解决方案
先下载一个highlight.js
下载链接
在里面找到你需要的语言,下载解压后上传到你所使用的ghost主题链接
之后用文本编辑器打开theme文件夹下的default.hbs文件进行编辑:
找到{{! Styles’n’Scripts }},在下面添加:
<link rel="stylesheet" type="text/css" href="{{asset "/highlight/styles/hybrid.css"}}" />
这里的hybrid.css可以替换成其他代码主题,可以根据个人喜好选择styles文件夹下的其他主题样式。你可以到这个网站预览各种风格的代码主题,选择自己喜欢的。
找到{{! The main JavaScript file for Casper }},在下面添加:
<script type="text/javascript" src="{{asset "/highlight/highlight.pack.js"}}"></script>
<script type="text/javascript">hljs.initHighlightingOnLoad();</script>
找不到你就在合适的地方添加好了
这样就完成了,再使用时候在Ghost自带的Markdown里面使用如下方式写作即可
< pre><code class="matlab">...</code></pre>
「前面有一个空格请自己去除,不然我打不出来」
matlab可以换成其他语言
下面做一个例子
%图像反转
%MATLAB 程序实现如下:
I=imread('xian.bmp');
J=double(I);
J=-J+(256-1); %图像反转线性变换
H=uint8(J);
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(H);
暂无评论