专栏首页bboysoulghost博客部署

ghost博客部署

概述

ghost是基于nodejs构建的开源博客平台 网上有很多部署ghost博客的文章,包括ghost中文网,部署的方法很多,但是我觉得最方便的就是用ghost_cli去部署ghost,ghost-cli是1.0版本之后出现的新工具。简单来说就是它能够帮助我们更加方便地安装,启动,升级和管理我们的ghost-blog. 下面就来介绍这种部署的方式

系统要求

下面是官方要求的系统和系统环境

  • Ubuntu 16.04
  • MySQL
  • NGINX (minimum of 1.9.5 for SSL)
  • Systemd
  • Node v6 installed via NodeSource
  • At least 1GB memory (swap can be used)
  • A non-root user for running ghost commands

安装部署

因为官方推荐使用ubuntu16.04,所以我的系统也是ubunut16.04的,大家最好也和我一样

用户设置

为了安全建议使用非root的用户去管理关于ghost博客的东西,所以推荐要新建一个账户,专门用来管理ghost sudo adduser ghost 把这个用户添加到sudo用户组中,使它具有使用sudo的权限 sudo usermod -aG sudo ghost 以ghost用户身份登录 su - ghost

更新一下系统

sudo apt update && sudo apt upgrade

安装nginx

sudo apt-get install nginx

打开HTTP / HTTPS的防火墙

查看一下ufw是不是被激活

ghost@bboysoul:/etc/init.d$ sudo service ufw status
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2017-09-16 15:24:12 CST; 29min ago
 Main PID: 337 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/ufw.service

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

如果被激活,那么要确保防火墙允许http/https的连接

ghost@bboysoul:/etc/init.d$ sudo ufw allow 'Nginx Full'
Rules updated
Rules updated (v6)

安装mysql

sudo apt-get install mysql-server

安装nodejs

因为ghost博客是用nodejs写的,所以要使用安装nodejs curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash sudo apt-get install -y nodejs

安装Ghost-CLI

因为身处中国,所以要切换一下nodejs的源,不然下载会很慢 npm config set registry https://registry.npm.taobao.org 之后安装ghost-cli sudo npm i -g ghost-cli

ghost@bboysoul:/etc/init.d$ sudo npm i -g ghost-cli
[sudo] password for ghost: 
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
/usr/bin/ghost -> /usr/lib/node_modules/ghost-cli/bin/ghost
/usr/lib
└── ghost-cli@1.1.1 

安装ghost

首先新建一个站点文件夹 sudo mkdir -p /var/www/ghost 把这个文件夹的所有者改为ghost sudo chown ghost:ghost /var/www/ghost/ 切换到这个文件夹中 cd /var/www/ghost/ 安装ghost ghost install

ghost@bboysoul:/var/www/ghost$ ghost install
✔ Checking system Node.js version
✔ Checking current folder permissions
✔ Checking operating system
✔ Checking MySQL is installed
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.8.6
✔ Finishing install process
? Enter your blog URL: http://localhost:2368
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
[sudo] password for ghost: 
✔ Setting up "ghost" system user
? Do you wish to set up Nginx? No
ℹ Setting up Nginx [skipped]
Task ssl depends on the 'nginx' stage, which was skipped.
ℹ Setting up SSL [skipped]
? Do you wish to set up "ghost" mysql user? No
ℹ Setting up "ghost" mysql user [skipped]
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_localhost.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_localhost.service /lib/systemd/system/ghost_localhost.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
✔ Running database migrations
? Do you want to start Ghost? Yes
✔ Validating config
Running sudo command: systemctl start ghost_localhost
✔ Starting Ghost
You can access your blog at http://localhost:2368/

Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config

这样的话你在本地浏览器就可以打开自己的ghost网站,如果访问不了请耐心等一下,因为程序的启动可能会比较慢,如果你要在别的机器上访问自己的博客。那么修改它的配置文件,就像下面 vim config.production.json

{
  "url": "http://192.168.1.102:2368/",
  "server": {
    "port": 2368,
    "host": "192.168.1.102"
  },
  "database": {
    "client": "mysql",
    "connection": {
      "host": "localhost",
      "user": "root",
      "password": "woyaoxuehuilinux",
      "database": "ghost"
    }
  },
  "mail": {
    "transport": "Direct"
  },
  "logging": {
    "transports": [
      "file",
      "stdout"
    ]
  },
  "process": "systemd",
  "paths": {
    "contentPath": "/var/www/ghost/content"
  }
}

注意修改的是url和host要改为自己机器的实际ip而不是127.0.0.1 当然我没有配置nginx,如果你配置了nginx,只要修改nginx中的配置文件就可以了 Have Fun 欢迎访问Bboysoul的个人博客www.bboysoul.com

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1485: C语言实验题――整除

    描述:判断一个数n能否同时被3和5整除。 输入:输入一个正整数n。 输出:如果能够同时被3和5整除,输出Yes,否则输出No。 样例输入:15 样例输出...

    bboysoul
  • ssh 免密码登录

    好几天没有写东西了,也不知道可以写什么,如果有好玩的东西,欢迎联系我 为什么需要ssh免密码登录,有的人说没有密码认证那么不就不安全了吗,所有人都可以用你的电...

    bboysoul
  • 搭建harbor仓库

    wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline...

    bboysoul
  • 玩转 PAI:Ghost 博客搭建

    PAI 购买页:https://cloud.tencent.com/solution/pai

    谛听
  • 实战解决使用ghost安装系统出现的各种问题

    昨天使用ghost给人安装系统时,把另一个分区的数据都搞没了,安装完也只剩下一个分区,相信了解的同志们知道是什么原因。

    williamwong
  • 不同浏览器下兼容文本两端对齐

    捷义
  • Wsl Best Practice

    WSL用了一年,感觉还不错。尤其是在我的机器上pypy3.5版本的SHA512 pbkdf计算性能竟然超越了原生Linux和Windows。成为Python运行...

    happy123.me
  • C++字符串处理小结

    常用的C++的字符串类型主要是std::string。它是模板std::basic_string的一个实例化。另外还有三个实例化std::wstring、std...

    linjinhe
  • 用Keras通过Python进行卷积神经网络的手写数字识别

    图像识别是深度学习技术的一个普遍具有的功能。

    青橙.
  • LTE--MR开启异频测量对网络性能的影响

    UE满足异频切换条件时,eNodeB会通过RRC_ConnectionReconfiguration下发异频测量相关信息给UE,UE启动测量GAP。在UE测量G...

    用户6184845

扫码关注云+社区

领取腾讯云代金券