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 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

Spring Boot Server容器配置

参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似。 所有参数绑...

39780
来自专栏猿天地

Eureka 服务上下线监控

微服务架构下,服务的数量少则几十,多则上百,对服务的监控必不可少。 如果是以前的单体项目,启动了几个项目是固定的,可以通过第三方的监控工具对其进行监控,然后实时...

57470
来自专栏跟着阿笨一起玩NET

server application unavailable IIS应用程序池 错误解决办法

出现错误信息如下: Server Application Unavailable The web application you are attempting...

26930
来自专栏五毛程序员

从0开始搭建自动部署环境(续)

31030
来自专栏hotqin888的专栏

docker升级,docker更新boot2docker.iso,镜像丢失,加速器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

56720
来自专栏有困难要上,没有困难创造困难也要上!

Windows通过组策略设置开机自启动脚本

20730
来自专栏云计算

部署一个Sinatra应用程序到Heroku

Heroku是一个云应用程序平台,专门用于解决服务器管理问题。您只需构建您的应用程序,通过Git将其推送到Heroku,然后放松一下。那么当提到部署一个Sina...

22460
来自专栏张伟博客

CentOS 7下搭建配置SVN服务器

subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。

33320
来自专栏极客日常

使用Nginx Ingress Controller导入外部流量到Kubernetes集群内部

Nginx Ingress Controller 是 Kubernetes Ingress Controller 的一种实现,作为反向代理将外部流量导入集群内部...

46120
来自专栏web编程技术分享

第二节 - MYSQL环境配置

34990

扫码关注云+社区

领取腾讯云代金券