/ 技术笔记

优雅地在 CentOS 里安装Ghost 和Node v4.2.2

优雅地在 CentOS 里安装Ghost 和Node v4.2.2

Ghost是一款非常出色的开源博客平台,无论是从架构、设计、易用性,它都要比Wordpress要好,界面简洁,专注写作,支持在线预览,在线写作,无论您是在哪里,都可以去写博客,尽情的享受写作带来的快感。

CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。完全免费,不存在RED HAT AS4需要序列号的问题。是目前VPS和服务器租用服务商使用最广泛的操作系统。

GHOST优势

  • 技术上,采用 Nodejs,在可预见的未来里,无疑比 PHP 有更多优势,并发能力远超 Wordpress ,虽然Nodejs 后期维护成本高,但是我们只是借它做博客而已。

  • 易用性上,专注写作,评论,超炫皮肤,完美支持 MarkDown,没有Wordpress那么臃肿,回归到博客最原始的状态,传递文字最原始的力量。

  • 使用上,便捷,随时随地编辑,比 Hexo, Jekyll 这类静态博客要书写方便,特别是在不同电脑上写作时。

前期准备

yum update 更新yum源
yum groupinstall "Development Tools" 安装开发工具包
yum install wget 安装wget下载工具

优雅地安装 Node v4.2.2

curl -sL https://rpm.nodesource.com/setup_4.x | bash -
yum install nodejs

验证是否安装配置成功:
node -v

安装Ghost

cd /var/www/
curl -L https://ghost.org/zip/ghost-latest.zip -o sungz.zip
unzip sungz.zip -d sungz
cd sungz/

将config.example.js重命名为config.js再对其进行修改配置

mv config.example.js config.js
vi config.js

Ghost默认集成 sqlite3 原生库,sqlite3有很多优势,安装简洁方便,备份快捷,用过会很喜欢。但博客篇幅比较大时,sqlite读写数据量太大时将会影响页面加载速度,我们可以根据不同需求改用mysql。

如果选择使用sqlite则在config.js中只需要修改url地址

production: {  
    url: 'www.sungz.com', //这里是你自己VPS主机的域名,或者IP
    mail: {},
    database: {
        client: 'mysql'这里我选择使用mysql作为我博客的数据库
        connection: {
            host     : '127.0.0.1',
            user     : 'sungz', //mysql用户名
            password : 'sungz', //密码
            database : 'ghost', //之前创建的ghost数据库名称
            charset  : 'utf8'
        },
    server: {
            host: '127.0.0.1',
            port: '2368'//若修改该端口记得在nginx中做相应改变
        }
    }

安装 Ghost

npm install

启动 Ghost

npm start --production

访问 http://your-ip-address:2368 就可以查看你的新博客地址。
访问 http://your-ip-address:2368/ghost 登陆和设置你的博客。

让Ghost永远在线

方法一、安装PM2,保持Ghost一直在后台运行

//!!首先进到ghost的安装目录

//安装pm2,保持Ghost一直在后台运行
npm install pm2 -g # 让ghost以production模式运作,指定程序的入口index.js,并且此进程命名为ghost
NODE_ENV=production pm2 start index.js --name "ghost"  # 生产模式后台运行ghost
pm2 startup ghost
pm2 save

进程守护做完,顺便提提pm2重启进程的命令是:pm2 restart 进程名。

方法二、安装forever,保持Ghost一直在后台运行

$ cd /var/www/ghost
$ npm install forever -g # 全局安装forever模块
$ NODE_ENV=production forever start index.js # 生产模式后台运行ghost

换了服务器重新安装Ghost

npm cache clean
rm -rf node_modules/
npm install
npm start --production
npm install pm2 -g
NODE_ENV=production pm2 start index.js --name "ghost"
pm2 startup ghost
pm2 save