通过 CLI 搭建 ghost

时间:2021-09-20 03:04:56

参考: ghost 官网

系统架构说明

架构

通过 CLI 搭建 ghost

架构说明

本实践将 web 接入, nodejs 服务, 数据库分离, 适合生产环境场景.

  • nginx 接入请求, 反向代理后端 nodejs 服务
  • nodejs 响应所有接口请求
  • mysql 存储数据

系统搭建

系统环境

  • 操作系统: Ubuntu 16.04.4 LTS
  • node: 8.x
  • ghost-cli: 1.6.0

Server List

server ip
nginx 10.0.0.1
nodejs 10.0.0.2
mysql 10.0.0.3

创建数据库

这里不赘述 mysql 的搭建过程

CREATE DATABASE ghost;
GRANT USAGE ON *.* TO 'ghost'@10.0.0.2 IDENTIFIED BY "<PASSWORD>";
GRANT ALL PRIVILEGES ON `ghost`.* TO 'ghost'@10.0.0.2;

安装 nodejs

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt-get install -y nodejs

安装 ghost-cli

npm i -g ghost-cli

安装 ghost

在非 root 用户下执行

创建存放 ghost 的目录: /data/ghost:

sudo mkdir /data/ghost
sudo chown <user> /data/ghost

安装 ghost

cd /data/ghost
ghost install

安装过程中选项:

  • Enter your blog URL : http://<your domain name>
  • Enter your MySQL hostname : 10.0.0.2
  • Enter your MySQL username : ghost
  • Enter your MySQL password : ghost's password
  • Enter your Ghost database name : ghost
  • Do you wish to set up "ghost" mysql user? : n
  • Do you wish to set up Nginx? : n
  • Do you wish to set up Systemd? : Y
  • Do you wish to start up GHOST? : n

修改/data/ghost/config.production.json

sed -i "s/127.0.0.1/0.0.0.0/1"  /data/ghost/config.production.json

这样 nodejs 可以监听来自所有 IP 的服务, nginx 才能将请求转发给 nodejs 服务

启动服务

在 ghost/system/files 下有一个服务配置文件, 在选择 Do you wish to set up Systemd?Y 的时候, 会创建一个软连接到 /usr/lib/systemd/system.

systemctl start $(basename `ls /data/ghost/system/files/ghost_blog-masterdax-com-1.service  | grep service`)

ghost 服务开启的端口是: 2368

配置 nginx

server {
listen 80;
server_name <domain>;
rewrite ^(.*) https://<domain>$1 permanent;
} server {
listen 443 ssl;
listen [::]:443 ssl;
server_name <domain>; ssl_certificate ssl/fullchain.pem;
ssl_certificate_key ssl/privkey.pem; location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://10.0.0.2:2368; } location ~ /.well-known {
root /data/web;
allow all;
} client_max_body_size 50m;
}

解析域名, 即可访问.

SSL 证书的生成可以用 letsencrypt

通过 CLI 搭建 ghost的更多相关文章

  1. CentOS 7&period;2 搭建 Ghost 博客

    因为平时记录一些文档或想法基本使用 markdown 的语法,Mac 下推荐一款 markdown 的编辑器 Haroopad:上周无意发现 Ghost 有支持 Mac 的桌面版本了,并且同样开源 h ...

  2. vue cli搭建项目及文件引入

    cli搭建方法:需安装nodejs先 1.npm install -g cnpm --registry=https://registry.npm.taobao.org //安装cnpm,用cnpm下载 ...

  3. Debian 8&period;x &sol; Ubuntu 16&period;04&period;x 搭建 Ghost 教程

    Ghost 是一款使用 Node.js 开发的博客系统,相对于使用 PHP 开发的 WordPress 更轻巧友好,所以本站已经从 WordPress 切换至 Ghost,本文介绍在 Debian 8 ...

  4. 用C&plus;&plus;&sol;CLI搭建C&plus;&plus;和C&num;之间的桥梁(一)—— 简介

    C#和C++是非常相似的两种语言,然而我们却常常将其用于两种不同的地方,C#得益于其简洁的语法和丰富的类库,常用来构建业务系统.C++则具有底层API的访问能力和拔尖的执行效率,往往用于访问底层模块和 ...

  5. 用C&plus;&plus;&sol;CLI搭建C&plus;&plus;和C&num;之间的桥梁

    一.简单用法 C#和C++是非常相似的两种语言,然而我们却常常将其用于两种不同的地方,C#得益于其简洁的语法和丰富的类库,常用来构建业务系统.C++则具有底层API的访问能力和拔尖的执行效率,往往用于 ...

  6. 在Azure中搭建Ghost博客并绑定自定义域名和HTTPS

    绪论 之前一直使用cnblog写博客,现在将博客迁移至Microsoft Azure上的Ghost博客上,Ghost博客使用Markdown书写博客,页面简洁,是我喜欢的风格.具体参见官网:https ...

  7. 基于 abp vNext 和 &period;NET Core 开发博客项目 - 使用 abp cli 搭建项目

    首先,默认咱们已经有了.net core 3.1的开发环境,如果你没有,快去下载... https://dotnet.microsoft.com/download 由于项目是基于abp vNext开发 ...

  8. Spring Boot &plus;Vue 项目实战笔记(一):使用 CLI 搭建 Vue&period;js 项目

    前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...

  9. 安装nodejs搭建ghost个人博客

    记录一下今天在linux下折腾nodejs的过程,相互学习: (不知道为什么用源代码安装,调用npm的时候老是会出现找不到npmlog的 错误,后来换用下了个二进制 来搞,假设那个牛牛知道为什么.希望 ...

随机推荐

  1. 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率

    一直想做这个测试,原因很简单,很多人一直比较怀疑Azure的虚拟机性能,说相同的配置凭啥比阿里的虚拟机贵那么多,其实,我自己以前也怀疑过,但是接触Azure的几个月,确实发现Azure的虚拟机性能真的 ...

  2. 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)

    http://www.cnblogs.com/batteryhp/p/5046433.html 5.示例:usda食品数据库 下面是一个具体的例子,书中最重要的就是例子. #-*- encoding: ...

  3. 第一章 Spring Security是什么&quest;

    1. 介绍 1.1 Spring Security是什么? Spring Security是一个强大的和高度可定制的身份验证和访问控制框架. 它是保证基于spring的应用程序安全的实际标准. 1.2 ...

  4. linux下的三种解压文件的命令?

    那要看你的压缩文件使用哪种压缩方式:gzip,压缩文件名:zip或gz,解压命令:unzipbzip2,压缩文件名:bz,解压命令:bzip2 -d上面两个是最常用的压缩方式,一般在linux下可以通 ...

  5. nginx&sol;apache&sol;php隐藏http头部版本信息的实现方法

    有时候我们需要隐藏我们的服务器版本信息,防止有心人士的研究,更安全,这里介绍下在nginx/apache/php中如何隐藏http头部版本信息的方法. nginx隐藏头部版本信息方法 编辑nginx. ...

  6. Linux中解决SSH连接慢问题

    [转载]来源:http://www.bkjia.com/xtzh/893669.html [转载原因]:其他文章都是修改服务器端配置,但为了保证服务器端安全问题,一般情况下最好不要修改服务器端配置.因 ...

  7. cpu性能探究 :cache line 原理

     參考: 一个解说Direct Mapped Cache很深入浅出的文章: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/dir ...

  8. POJ 2313 Sequence&num;贪心

    (- ̄▽ ̄)-* 找规律 //初始化为B[i]=A[i] //然后由V=|A[1]-B[1]|+|A[2]-B[2|+|A[3]-B[3]| // +|B[1]-B[2]|+|B[2]-B[3]| / ...

  9. &lbrack;转载&rsqb;linux修改open files数

    概要:linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够.这就需要修改ulimit和file-m ...

  10. business expressions&lpar;二)

    1,to give someone a heads up = to inform someone about something important ("heads up") be ...