通过 CLI 搭建 ghost
参考: 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的更多相关文章
- CentOS 7.2 搭建 Ghost 博客
因为平时记录一些文档或想法基本使用 markdown 的语法,Mac 下推荐一款 markdown 的编辑器 Haroopad:上周无意发现 Ghost 有支持 Mac 的桌面版本了,并且同样开源 h ...
- vue cli搭建项目及文件引入
cli搭建方法:需安装nodejs先 1.npm install -g cnpm --registry=https://registry.npm.taobao.org //安装cnpm,用cnpm下载 ...
- Debian 8.x / Ubuntu 16.04.x 搭建 Ghost 教程
Ghost 是一款使用 Node.js 开发的博客系统,相对于使用 PHP 开发的 WordPress 更轻巧友好,所以本站已经从 WordPress 切换至 Ghost,本文介绍在 Debian 8 ...
- 用C++/CLI搭建C++和C#之间的桥梁(一)—— 简介
C#和C++是非常相似的两种语言,然而我们却常常将其用于两种不同的地方,C#得益于其简洁的语法和丰富的类库,常用来构建业务系统.C++则具有底层API的访问能力和拔尖的执行效率,往往用于访问底层模块和 ...
- 用C++/CLI搭建C++和C#之间的桥梁
一.简单用法 C#和C++是非常相似的两种语言,然而我们却常常将其用于两种不同的地方,C#得益于其简洁的语法和丰富的类库,常用来构建业务系统.C++则具有底层API的访问能力和拔尖的执行效率,往往用于 ...
- 在Azure中搭建Ghost博客并绑定自定义域名和HTTPS
绪论 之前一直使用cnblog写博客,现在将博客迁移至Microsoft Azure上的Ghost博客上,Ghost博客使用Markdown书写博客,页面简洁,是我喜欢的风格.具体参见官网:https ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目
首先,默认咱们已经有了.net core 3.1的开发环境,如果你没有,快去下载... https://dotnet.microsoft.com/download 由于项目是基于abp vNext开发 ...
- Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目
前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...
- 安装nodejs搭建ghost个人博客
记录一下今天在linux下折腾nodejs的过程,相互学习: (不知道为什么用源代码安装,调用npm的时候老是会出现找不到npmlog的 错误,后来换用下了个二进制 来搞,假设那个牛牛知道为什么.希望 ...
随机推荐
- ExtJs4.1目录结构介绍和使用说明[转]
一.在做ExtJs开发之前首先要到网站上下载ExtJs的开发包,我用的最新版本是4.1.1.此版本相对于之前的版本目录结构发生了一些变化,没有了adapter目录, 目录结构如下 文件/文件夹名的作用 ...
- Python|花了一天,为大家整理的一套来自外国大佬的密码速查表
简单的HTTPS服务器 检查证书信息 输出 生成自签名证书 输出 准备一个签名注册请求 输出 生成无密码的RSA秘钥文件 用一个私钥给文件签名 输出 从签名验证一个文件 输出 通过pem文件做RSA加 ...
- 1034 Head of a Gang (30 分)(图的遍历or并查集)
dfs #include<bits/stdc++.h> using namespace std; ; int mp[N][N]; int weight[N]; int vis[N]; ma ...
- python第三天(dictionary应用)转
1.题目: python实现英文文章中出现单词频率的统计 前言: 这道题在实际应用场景中使用比较广泛,比如统计历年来四六级考试中出现的高频词汇,记得李笑来就利用他的编程技能出版过一本背单词的畅销书 ...
- tomcat web.log 系统日志记录文件过大问题修改
目前各系统都是记录所有的日志,产生日志文件太大,按照如下设置修改log4j.properties文件:其中橙色部分为系统名称,例如water-scada系统,名称可以为scada. #Sun Jun ...
- c++知识点总结--函数模板
通用函数可变参模板 用于处理不限定参数的函数 showall(){//空函数,接口,最后结束递归 } template<typename T,typename... Args> void ...
- 牛客网/LeetCode/七月在线/HelloWorld114
除了知乎,还有这些网站与offer/内推/秋招/春招相关. 其中HelloWorld114更是囊括许多IT知识. 当然,我们可以拓宽思考的维度,既然课堂上的老师讲不好,我们可以自己找资源啊= => ...
- Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
<Z.XML Introduction of each team member, with photos Z=周敏轩; X=肖俊鹏&薛亚杰; M= 毛宇 & 马辰; L= 李孟 ...
- 关于ubuntu上无法运行cmd markdown
环境:ubuntu18.04 直接解压完的cmd markdown,直接点击可执行文件运行,没有反应,在通过终端运行,提示:Cannot find required executable ifconf ...
- centos7 centos6中 更改默认的系统启动级别
centos6中更改默认的启动级别 方法: 1.vi /etc/inittab 2.找到id:x:initdefault:,我的系统是id:3:initdefault:,即默认以字符模式启动. 3.将 ...