基于Ghost框架搭建Blog
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
注意:在
/root
或home/
目录中安装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相关推荐
- TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%)
TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%) 目录 输出结果 实现代码 输出结果 Successfully downloaded t ...
- 基于GitBook框架搭建技术文档平台
源宝导读:为了向用户更好的传递ERP开放平台的价值与技术知识,我们基于GitBook框架搭建了一个文档中心站点,本文将介绍此站点的设计与实现过程. 一.项目架构图 因为文档会涉及到很多的产品线,所以目 ...
- 基于Rasa框架搭建中文机器人对话系统
Rasa是一个能用于构建机器人对话系统的框架,基于Rasa框架搭建机器人对话系统,可以使用于工业各类语音智能服务场景,如:远程医疗问诊.智能客户服务.保险产品销售.金融催收服务.手机智能助手等领域.支 ...
- 基于 SSM 框架搭建的宠物领养系统
近年来,随着人们对于宠物领养.保护的意识日益提高,宠物领养市场逐渐走向规范化.高效化.而针对这一市场需求,基于 SSM 框架搭建的宠物领养系统应运而生. 一.关于 SSM 框架 SSM 是一个基于 S ...
- 基于SSM框架搭建的论坛系统
基于SSM框架搭建的论坛系统 页面展示: 主页 帖子页面 论坛数据库设计 SSM框架搭建 RootConfig.java WebConfig.java WebInit.java 配置po模型 User ...
- YMP框架学习笔记(二)------基于YMP框架搭建WEB应用程序
2019独角兽企业重金招聘Python工程师标准>>> 大神的YMP框架:https://github.com/suninformation/ymateplatform.git 1. ...
- 基于SSM框架搭建的个人博客网站(可用于毕业设计)
项目背景 个人学习Spring+SpringMVC+MyBatis框架整合练习时搭建的一个网站. 使用的技术栈 Spring SpringMVC MyBatis 国际化框架 shrio校验框架 jsp ...
- java 进销存系统_基于SSM框架搭建的java web商家进销存网站系统
项目描述 根据当前的服装库存管理体制,一般系统,总是根据所掌握的商品类别,相应分成几个库存管理员进行商品的计划.订货.核对入库:根据销售的需要来发送物品(出库).并定期进行库存盘点.作台账:根据服装管 ...
- 基于mpvue框架搭建微信小程序开发环境
一.按照mpvue官网新建前台工程 http://mpvue.com/mpvue/quickstart.html(mpvue快速上手教程) 二.路由功能代码实现 mpvue对vue-router的支持 ...
- 基于lamp框架搭建wordpress论坛
手动操作完成 1.安装服务 [root@workstation mnt]# dnf install httpd mariadb-server php php-mysqlnd -y [root@work ...
最新文章
- Android系统中Parcelable和Serializable的区别
- rmmod无法卸载驱动_笔记:linux驱动开发(1、了解内核模块)
- teamviewer 过期解决办法
- jboss as7 下载_JBoss AS 7:定制登录模块
- codeblocks如何导入项目_T3如何利用系统工具导入导出复制存货档案
- ole db 错误 通讯链接失败_西门子PLC1200的S7通讯(同一项目下)--GET接收指令
- github 私有化部署_2019,GitHub 宣布私有代码仓库从此免费!
- 安装grunt-browser-sync时报错:“未能加载Visual C++ 组件 “VCBuild.exe”
- brew 安装php7.1.6_mac上通过brew安装php7
- 数据遍历打印得小列子
- Entity Framework技巧系列之七 - Tip 26 – 28
- pb9 调用系统语音_语音通知解决方案,VIKI语音通知软件介绍
- openwrt编译smartdns_LEDE/OpenWRT 部署SmartDNS
- .cer文件转.pem文件
- Excel 数据透视表教程大全之 01 什么是数据透视表 如何创建数据透视表
- ANU COMP1100 Lab1简介
- Push上传出错:Support for password authentication was removed on August 13, 2021.git did not exit cleanly
- 中南大学2021计算机专硕复试分数线,中南大学2021年考研复试分数线
- 带你快速入门AXI4总线--汇总篇
- 程序员是否合格----看看键盘就知道了