阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 14.04 搭建 Ghost博客

197次阅读
没有评论

共计 7041 个字符,预计需要花费 18 分钟才能阅读完成。

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

优势

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

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

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

劣势

  • 需要配套支持 Node 环境的虚拟机,一般免费的很少支持,这时必须得掏腰包了。

  • 后台简陋, 许多功能还未完善,不过写作这一块没啥大问题。

环境

Ubuntu 14.04,MySQL 5.5.43,Nginx 1.4.6,Node 0.10.33

步骤

安装 MySql

# 安装 MySql
$ apt-get update # 更新组件
$ apt-get install mysql-server mysql-client -y # 快速安装 - y 代表默认选择 y 省去了回车,这时只需要设置 mysql 的 root 密码

# 设置 mysql 的编码
$ sudo vi /etc/mysql/my.cnf # 搜索到[mysqld] 插入collation-server = utf8_unicode_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
$ service mysql restart # 重启生效
$ mysql -u root -p # 输入上面设置的密码
$ show variables like 'char%'
$ show variables like 'collation%' # 查看是否改成 utf-8了否则之后数据库内存中文存放的是乱码

# 创建 Ghost 数据库
$ create database mousycoder # 这里把 mousycoder 换成你想换成的数据库名,建议和域名保持一致,方便以后维护。$ create database mousycoderDev # 这个是 Ghost 启动有 2 种模式 一种开发模式 一种生产模式 这个是开发模式的数据库,如果不想那么麻烦,只用建立一个数据库即可。$ create user 'mousycoder'@'localhost' identified by '123456' # 这里新建一个用户 mousycoder 密码为 123456, 当然我的密码肯定不是123456 咯,换成你自己的啦 = =,同样也建议用户名,数据库名,服务名,组名,都和域名保持一致, 这里是建立一个只有本地操作的用户,远程无法操作,安全策略。$ grant all privileges on mousycoder.* to 'mousycoder'@'localhost'
$ grant all privileges on mousycoderDev.* to 'mousycoder'@'localhost' # 这里是赋予 mousycoder 这个本地用户所有对数据库 mousycoder 以及 mousycoderDev 的权限,当然这里你可以根据实际需要赋予权限。$ FLUSH PRIVILEGES # 重新读取权限表中的数据到内存,不用重启 mysql 就可以让权限生效,好处可以防止修改错误后,没有余地再去反悔。

补充说明

  • mysql 移除匿名账户,禁用 root 远程登录:$ sudo mysql_secure_installation; 回答 n,y,y,y,y

  • grant 用法:grant 权限 1, 权限 2,…权限 n on 数据库名称. 表名称 to 用户名 @用户地址 identified by ‘ 口令 ’
    其中权限 1, 权限 2,…权限 n 代表 select,insert,update,delete,create,drop,

index,alter,grant,reload,references,shutdown,process,file14 个权限。
例如:`grant select,insert,update,delete,create,drop on mousycoder.employee to
hello@10.163.225.87 identified by‘123456′`
代表给来自 10.163.225.87 的用户 hello 分配可对数据库 mousycoder 的 employee 表进行 select,insert,update,delete,create,drop 等操作的权限,并设定口令为 123456。

  • mysql 乱码原因详细解可以参考 http://www.linuxidc.com/Linux/2015-03/115291.htm

安装 Nginx

# 安装 nginx
$ apt-get install nginx -y 
$ apt-get install curl -y # curl 是一种命令行工具,作用是发出网络请求,然后得到和提取数据。
$ curl -i 127.0.0.1 # 确保 Nginx 运行,默认监听 80 端口

# 设置 web 目录和 cache 目录
$ mkdir /var/www
$ mkdir -p /var/cache/nginx # -p 可以一下子把中间路径中不存在的文件夹也一起建立,非常实用
$ chown www-data:www-data /var/www # nginx 安装会自动建立用户 www-data 并且默认用这个用户操作
$ chown www-data:www-data /var/cache/nginx

# 修改配置文件(一般不操作这个文件)
$ cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old # 备份原来配置
$ vi /etc/nginx/nginx.conf # 可以修改默认用户为其他用户

# 为 Ghost 单独创建 nginx 配置文件
$ rm /etc/nginx/sites-enabled/default # 删掉默认的配置
$ vi /etc/nginx/sites-available/mousycoder # 建立一个 nginx 配置文件

nginx 配置文件

server {listen 0.0.0.0:80; # 监听的端口号
    server_name mousycoder.com; # 把 mousycoder.com 换成自己的域名,如果没有域名或者网站还没备案下来这里可以写 ip, 例如 120.25.150.209,如果配置多个网站的话,这里可以通过不同的端口对应不同的网站,例如:120.25.150.209:81 等 前提是这些端口外网还能访问。
    access_log /var/log/nginx/mousycoder.log;

    location / {proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Real-IP $remote_addr;

        proxy_pass http://127.0.0.1:2368;  # 这里是 Ghost 启动时的默认端口,可以根据实际情况变化,默认也可以
        #proxy_buffering off;
        proxy_redirect off;
    }
}

然后重启服务

$ ln -s /etc/nginx/sites-available/mousycoder /etc/nginx/sites-enabled/mousycoder # 建立软链接到到实际配置路径,方便统一维护配置文件变化。
$ service nginx restart # nginx 安装好时已经默认注册了系统的服务,我们就可以直接重启 nginx 服务,让配置文件生效

补充说明

nginx 这里主要是做端口转发映射作用,当然它非常能抗压。

安装 Node.Js

$ wget http://nodejs.org/dist/v0.10.39/node-v0.10.39-linux-x64.tar.gz 
$ tar zxf node-v0.10.39-linux-x64.tar.gz && cd node-v0.10.39-linux-x64
$ cp bin/* /usr/bin # 拷贝执行目录,相当于去设置一个环境变量到用户的 bin 目录

补充说明

这里下载的并不是最新版的 nodejs,为了 稳定
Ghost 官网解释

从 Ghost 0.6.0 版本开始,Ghost 中文版完整包已经集成了 Nodejs 0.12 版本的 sqlite3 原生库,在 windows(32/64 bit)、Linux(32/64 bit)、Mac(64 bit)操作系统上可以直接在 Nodejs 0.10.x 和 0.12.x 版本上运行。但是,我们强烈建议使用 Node.js 0.10.x 最新版本。对 Node.js 0.12.x 版本的支持还有待考验!

详情见 http://www.linuxidc.com/Linux/2016-11/137338.htm,当然 NodeJs 有很多种安装方法,个人觉得这种是在这里最适合的方法。

下面关于 Node.js 的内容你可能也喜欢

在 Ubuntu 14.04/15.04 上安装配置 Node.js v4.0.0  http://www.linuxidc.com/Linux/2015-10/123951.htm

如何在 CentOS 7 安装 Node.js http://www.linuxidc.com/Linux/2015-02/113554.htm

Ubuntu 14.04 下搭建 Node.js 开发环境  http://www.linuxidc.com/Linux/2014-12/110983.htm

Ubunru 12.04 下 Node.js 开发环境的安装配置 http://www.linuxidc.com/Linux/2014-05/101418.htm

Node.Js 入门[PDF+ 相关代码] http://www.linuxidc.com/Linux/2013-06/85462.htm

Node.js 开发指南 高清 PDF 中文版 + 源码 http://www.linuxidc.com/Linux/2014-09/106494.htm

Node.js 入门开发指南中文版 http://www.linuxidc.com/Linux/2012-11/73363.htm

Ubuntu 编译安装 Node.js http://www.linuxidc.com/Linux/2013-10/91321.htm

安装 Ghost

下载 Ghost

$ cd /var/www/
$ curl -L http://dl.ghostchina.com/Ghost-0.6.3-zh.zip -o mousycoder.zip
$ unzip mousycoder.zip -d mousycoder
$ cd mousycoder/

配置 Ghost

Ghost 有两种运行模式:开发模式和产品模式,通过 config.js 配置

$ cp config.example.js config.js
$ vi config.js

在 config.js 配置文件里配置

- production # 生产模式
    production:{url: 'http://mousycoder.com',
       main:{},
       database:{client :'mysql',
           connection:{host:'127.0.0.1',
               user:'mousycoder',  # 数据库连接的用户
               password:'123456',
               database:'mousycoder',
               charset:'utf-8'
           }
       }
    }

- development # 开发模式
    production:{url: 'http://mousycoder.com',
       main:{},
       database:{client :'mysql',
           connection:{host:'127.0.0.1',
               user:'mousycoder',  # 数据库连接的用户
               password:'123456',
               database:'mousycoderDev',
               charset:'utf-8'
           }
       }
    }

安装与运行

根据 package.json 安装依赖包, 进入当前 mousycoder 目录下

$ cd /var/www/mousycoder
$ npm install --production  # 产品模式;只安装运行的包
$ npm install # 开发模式,默认是开发模式

用 mousycoder 运行 Ghost(非 root 账户运行 Ghost 更安全)

$ adduser -shell /bin/bash --gecos 'mousycoder blog' mousycoder
$ chown -R mousycoder:mousycoder /var/www/mousycoder

安装 forever, 保持 Ghost 一直在后台运行

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

安装系统服务

$ curl https://raw.githubusercontent.com/TryGhost/Ghost-Config/master/init.d/ghost -o /etc/init.d/mousycoder # 下载 Ghost 提供的脚本到 /etc/init.d/ 目录,该目录是系统服务目录
$ chmod +x /etc/init.d/mousycoder # 给脚本赋予执行权限
$ usermod -aG mousycoder www-data # 把 www-data 用户加入 mousycoder 组,让其可以操作源文件等目录
$ update-rc.d mousycoder defaults # 用 update-rc.d 安装服务 mousycoder
$ update-rc.d mousycoder enable # 刷新一遍服务, 防止之前有重名的
$ service mousycoder status # 查看 mousycoder 服务的状态
$ service mousycoder start # 这样开机就会自动启动 ghost 生产环境,不信 reboot 一下

补充说明

  • curl 常用命令 详情  Ubuntu 16.04 及衍生版安装 cURL 7.49.0  http://www.linuxidc.com/Linux/2016-05/131574.htm

$ curl -L https://raw.githubusercontent.com/TryGhost/Ghost-Config/master/init.d/ghost -o ghost # -L 解决网站地址自动跳转后拿不到文件
$ curl -v www.baidu.com  # 显示详细过程包含 http 头
$ curl -u username:password url 解决页面需要授权输入用户名密码情况
$ curl -u username --data "param1=value1&param2=value2" https://api.github.com  # post 请求
$ curl -I -X DELETE https://api.github.com  # 解决 get post 以外的请求方式
$ curl --form "fileupload=@filename.txt" http://hostname/resource  # 上传文件
  • chmod 命令

$ chmod -R a-w abc # 取消 /abc 目录的 -w(写)权限

drwxr-xr-x 第一列 d 目录 第 2 - 4 列 拥有者权限 rwx 5- 7 列 r- x 同组用户权限 r- x 是其他组用户权限, 其中 rwx 对应 4,2,1

  • 系统服务启动顺序

$ update-rc.d A start 50 1 2 3 4 5 stop 51 0 6
$ start 50 1 2 3 4 5 # 表示在 1,2,3,4,5 这 5 个运行级别中,按先后顺序,由小到大执行,第 50 个开始运行脚本
$ stop 50 0 6 # 表示在 0,6 这两个运行级别中,按照先后顺序,由小到到执行,第 52 个停止这个脚本运行
$ update-rc.d mousycoder remove # 卸载 mousycoder 开机服务

启动

打开浏览器,输入之前配置的 ip 或者域名

首页 http://hostname.com/ghost
Ghost 后台 http://hostname.com/ghost

现在你就可以尽情享受 Ghost 带给你的极致简洁了,快来书写吧!

CentOS 7 系统安装 Ghost 博客平台  http://www.linuxidc.com/Linux/2016-10/136410.htm

CentOS6 32 位安装 Ghost http://www.linuxidc.com/Linux/2015-09/123063.htm

Ubuntu14.04 搭建 Ghost 平台博客 http://www.linuxidc.com/Linux/2016-11/137337.htm

CentOS 7.2 搭建 Ghost 博客  http://www.linuxidc.com/Linux/2016-11/137336.htm

Linux 下 Ghost 博客系统安装教程  http://www.linuxidc.com/Linux/2016-11/137341.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137348.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7041字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中