Extract

丢掉Hexo,舍弃Wordpress,最终我选择了Ghost。

前言

前段时间,先是舍弃了Hexo转战Wordpress,主要原因是Hexo多终端编写Blog比较麻烦,需要经常同步本地文件,另外Hexo没有后台,很多时候不是那么方便,但是Hexo的确是我用过最有利于“专注写作”的框架,但是没有办法,用户体验让我不得不舍弃掉他。

后来我又使用了Wordpress,优点十分明显:有后台、有在线编辑器、一键换主题、可定制主题、大量插件等等,这些是他的优点,但Wordpress却忽略了最重要的一个环节:编辑器。Wordpress:5.0以后内置的Gutenberg编辑器对于Markdown用户来说是真的难用。

之后我在网上四处冲浪,观察大家都在使用哪些框架建站,后来我发现了这个基于Node.js开发的Blog框架—Ghost。

环境准备

官方给出的文档建议使用如下环境:

  • Ubuntu 16.04 or Ubuntu 18.04
  • NGINX (minimum of 1.9.5 for SSL)
  • A supported version of Node.js
  • MySQL 5.5, 5.6, or 5.7 (not >= 8.0)
  • Systemd
  • A server with at least 1GB memory
  • A registered domain name

总的来说就是就是需要Nginx、MySQL、Node.js这三个东西,另外你需要一台至少1GB内存的服务器以及一个注册的域名。

创建用户

因为Ghost不允许使用root账户安装,所以首先需要创建一个普通账户。

#user使用自己的账户名称
adduser <user>

这里注意也不要使用ghost作为用户名,这会导致与Ghost-CLI冲突。

然后我们需要将这个账户添加到superuser用户组,这样我们就可以使用sudo命令了。

#使用root用户执行以下命令
usermod -aG sudo <user>#切换到新建的用户
su - <user>

安装Nginx

首先确保软件包列表是最新的。

sudo apt-get update

Ghost需要Nginx服务器,并且SSL配置需要Nginx1.9.5或更高版本。

sudo apt-get install nginx

如果你的服务器使用了 ufw,那么你需要允许HTTP和HTTPS连接,打开防火墙:

sudo ufw allow 'Nginx Full'

安装MySQL

数据库官方建议使用MySQL,版本在5.5以上,且不大于8.0 。

sudo apt-get install mysql-server

Ubuntu18.04上的MySQL

如果你的服务器运行的是Ubuntu18.04,则需要输入密码确保MySQL与Ghost-CLI兼容。

#进入mysql
sudo mysql#修改root用户的密码,这里的password改成你自己要设定的密码
>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';#退出mysql
>quit#切换回你的管理员用户
su - <user>

安装Node.js


官方建议使用10.x的 LTS版本。

#添加Node10到APT仓库
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash#安装Node.js
sudo apt-get install -y node.js

安装Ghost-CLI

Ghost-CLI是一个命令行工具,可以快速安装、配置Ghost。

sudo npm install ghost-cli@latest -g

安装后可运行ghost help验证安装。

安装Ghost

注意:在/roothome/目录中安装Ghost会导致安装程序损坏,建议使用/var/www/ghost目录。

创建目录

创建安装目录,并且设置所有者和读写权限。

#创建安装目录
sudo mkdir -p /var/www/ghost#更改文件夹所有者
sudo chown <user>:<user> /var/www/ghost#更改权限
sudo chmod 775 /var/www/ghost#进入目录
cd /var/www/ghost

开始安装

前期环境均已配置好,下面开始运行安装命令。

ghost install

安装问题

安装过程中Ghost-CLI会提示配置一些选项。

Blog URL

输入指向该服务器的域名,如https://giottolee.com,官方文档说这里如果不使用域名直接使用IP地址会导致一些错误,但是我试着配了一下,也没有报错。尽管如此还是建议买一个域名,毕竟直接暴露IP地址还是有危险的。

MySQL hostname

配置数据库来源,如果你的数据库是在本地配置,就直接Enter使用默认本地配置。如果你的数据安装在另一台服务器,就输入服务器名字。

MySQL username/ password

输入数据库的用户名和密码。

Ghost database name

如果你的数据库使用的是root用户,则Ghost-CLI会自动创建一个数据库。如果你使用的非root用户,你需要手动创建一个数据库,并且配置好权限,然后在这输入数据库的名字。

Set up a ghost MySQL user? (Recommended)

如果你的数据库用户使用的是root用户,Ghost-CLI会为Ghost创建一个新的数据库用户,这个用户只能读写Ghost数据库。

Set up NGINX? (Recommended)

自动配置Nginx,想都不想直接Enter。

Set up SSL? (Recommended)

直接Enter吧。

Enter your email

输入你的邮箱地址,用来配置SSL。

Set up systemd? (Recommended)

使用ghost进程管理工具,推荐y

Start Ghost?

开始运行。

接下来你就可以通过你的域名访问你的Ghost初始页面了。

基于Ghost框架搭建Blog相关推荐

  1. TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%)

    TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%) 目录 输出结果 实现代码 输出结果 Successfully downloaded t ...

  2. 基于GitBook框架搭建技术文档平台

    源宝导读:为了向用户更好的传递ERP开放平台的价值与技术知识,我们基于GitBook框架搭建了一个文档中心站点,本文将介绍此站点的设计与实现过程. 一.项目架构图 因为文档会涉及到很多的产品线,所以目 ...

  3. 基于Rasa框架搭建中文机器人对话系统

    Rasa是一个能用于构建机器人对话系统的框架,基于Rasa框架搭建机器人对话系统,可以使用于工业各类语音智能服务场景,如:远程医疗问诊.智能客户服务.保险产品销售.金融催收服务.手机智能助手等领域.支 ...

  4. 基于 SSM 框架搭建的宠物领养系统

    近年来,随着人们对于宠物领养.保护的意识日益提高,宠物领养市场逐渐走向规范化.高效化.而针对这一市场需求,基于 SSM 框架搭建的宠物领养系统应运而生. 一.关于 SSM 框架 SSM 是一个基于 S ...

  5. 基于SSM框架搭建的论坛系统

    基于SSM框架搭建的论坛系统 页面展示: 主页 帖子页面 论坛数据库设计 SSM框架搭建 RootConfig.java WebConfig.java WebInit.java 配置po模型 User ...

  6. YMP框架学习笔记(二)------基于YMP框架搭建WEB应用程序

    2019独角兽企业重金招聘Python工程师标准>>> 大神的YMP框架:https://github.com/suninformation/ymateplatform.git 1. ...

  7. 基于SSM框架搭建的个人博客网站(可用于毕业设计)

    项目背景 个人学习Spring+SpringMVC+MyBatis框架整合练习时搭建的一个网站. 使用的技术栈 Spring SpringMVC MyBatis 国际化框架 shrio校验框架 jsp ...

  8. java 进销存系统_基于SSM框架搭建的java web商家进销存网站系统

    项目描述 根据当前的服装库存管理体制,一般系统,总是根据所掌握的商品类别,相应分成几个库存管理员进行商品的计划.订货.核对入库:根据销售的需要来发送物品(出库).并定期进行库存盘点.作台账:根据服装管 ...

  9. 基于mpvue框架搭建微信小程序开发环境

    一.按照mpvue官网新建前台工程 http://mpvue.com/mpvue/quickstart.html(mpvue快速上手教程) 二.路由功能代码实现 mpvue对vue-router的支持 ...

  10. 基于lamp框架搭建wordpress论坛

    手动操作完成 1.安装服务 [root@workstation mnt]# dnf install httpd mariadb-server php php-mysqlnd -y [root@work ...

最新文章

  1. Android系统中Parcelable和Serializable的区别
  2. rmmod无法卸载驱动_笔记:linux驱动开发(1、了解内核模块)
  3. teamviewer 过期解决办法
  4. jboss as7 下载_JBoss AS 7:定制登录模块
  5. codeblocks如何导入项目_T3如何利用系统工具导入导出复制存货档案
  6. ole db 错误 通讯链接失败_西门子PLC1200的S7通讯(同一项目下)--GET接收指令
  7. github 私有化部署_2019,GitHub 宣布私有代码仓库从此免费!
  8. 安装grunt-browser-sync时报错:“未能加载Visual C++ 组件 “VCBuild.exe”
  9. brew 安装php7.1.6_mac上通过brew安装php7
  10. 数据遍历打印得小列子
  11. Entity Framework技巧系列之七 - Tip 26 – 28
  12. pb9 调用系统语音_语音通知解决方案,VIKI语音通知软件介绍
  13. openwrt编译smartdns_LEDE/OpenWRT 部署SmartDNS
  14. .cer文件转.pem文件
  15. Excel 数据透视表教程大全之 01 什么是数据透视表 如何创建数据透视表
  16. ANU COMP1100 Lab1简介
  17. Push上传出错:Support for password authentication was removed on August 13, 2021.git did not exit cleanly
  18. 中南大学2021计算机专硕复试分数线,中南大学2021年考研复试分数线
  19. 带你快速入门AXI4总线--汇总篇
  20. 程序员是否合格----看看键盘就知道了

热门文章

  1. 「代码随想录」279.完全平方数 【动态规划】力扣详解!
  2. indesign使用教程,如何将图形添加到项目?
  3. MPAndroidChart 2.15使用记录
  4. 全新定义!免费开源ERP平台如何玩转工业互联网
  5. Python闭包装饰器笔记
  6. Xcode常用的快捷键有哪些?
  7. 手把手搭建WAMP+PHP+SVN开发环境
  8. android 设备唯一码的获取,Cpu号,Mac地址
  9. nginx模块nginx_upstream_check_module来检查后端服务器的健康情况
  10. 直接拿来用!最火的iOS开源项目(一~三)