本文将讲述什么是Ghost、哪种搭建方式适合你、如何挑选服务器以及如何以最快捷的方式搭建Ghost。
本文由于讲得稍微细一些所以字数较多,但实际操作起来不会超过10分钟(系统网络环境好的前提下)操作时绝大部分时候其实都是在等待安装。文章部分内容基于官方文档翻译,并总结了一些常见的坑及其解决方案。
Ghost 是一款个人博客系统,其设计主旨是简化个人网站发布以及网上出版的过程。官方也提供开发插件的API和可以定制的Handlebars主题模板样式。
官方提供了多种搭建的方式,其中包括官方托管、第三方托管以及自托管(俗称 自建)
Ghost由John o'nolan于2013年创立,它是由前 WordPress 的一些优秀员工的创业项目。项目仍然采用 100% 开源,加上官方的收费托管的商业模式,目前已经发展成为一个非常的博客系统。
相比于Wordpress,Ghost更专注于写作!由于 Wordpress 实在是太多东西可以优化了(它的优点,同时对非专业用户也是缺点),导致有点像专门去折腾优化的而不是来写作的,所以我也从 Wordpress 换到了 Ghost。
关于搭建,如果你是一个对 Linux 不太熟悉,也没什么时间再去学习代码以及网络方面知识的话。
我推荐你选择 托管,这种方式的好处就是有专业人士替你维护服务器,你只需要专注于自己的内容更新。
不少人搭建博客可能就为了图一乐,写点小文章,记录一下身边的美好。不希望花大价钱购买域名、服务器,也不希望花太多时间去维护。那么第三方托管是你最好的选择!
Ghost 官方托管价格表,点击图片跳转至 Ghost Pro 页面
唯一的缺点就是,官方托管的价格一般偏贵 最低每月$9起。但是也有很便宜的第三方托管(后面会讲),不过访问速度方面可能会不太理想。
如果你对 Linux 有初步了解,或者就是喜欢自己折腾一下。那么我推荐你选择 自托管 ,这种方式的好处是 相对省钱 ➕ 高度自定义 。当然,在后期如果你是想要认真打造一个博客的话,在 域名和 服务器 方面的成本会稍有提升。
爱折腾的人,我推荐是使用 托管+自托管 。在自托管的机器折腾,如果不小心配置错误会导致用户无法访问,如果你刚好不会修还得花时间搜索解答,且有的 VPS 商家还不支持在面板一键重装系统。因此托管的机器最适合用来折腾,然后将最终版本在自托管服务器中上线。
服务器类型: Ghost 支持 AMD和ARM!!!所以在使用 Rclone 做好数据备份的前提下,甲骨文也是可以一战的。
一个网址的面向群体决定了你 VPS线路是否需要大陆优化、域名是否需要备案(以下只是举例博主正在使用/以往使用过的机器,并没有在此为商家做出提供担保,请按需购买)
优点:国内访问速度更快,无需担心被墙无法访问的情况。
缺点:域名需要走流程备案,否则无法解析。
如果懒得备案的话,可以选择 第三方商家位于香港、圣何塞、法兰克福的服务器,也可以前往其他商家购买 CN2 GIA/4837/9929 等对国内优化的线路。
优点:再差的机器套上Cloudflare也差不到哪里去了,并且无需备案。
缺点:鱼龙混杂,尽量选择大厂、已开设多年的商家
一个好的域名有利品牌推广,优秀的域名能够让客户很快的记住并找到你,创造品牌价值,吸引回头率。
1. 进入 PikaPods 的官网,并注册账号
2. 点击右上角 ADD PODS 创建一个新容器
3. 相关配置
在 Choose App 一栏中输入 Ghost ,Pod Name 输入你想要的名字, Pod Region服务器所在区域 随便选一个即可...都不咋样
系统会给出所需的最小配置,你可以根据自己的喜好修改(一般如果访问量不大的话无需改动),点击 绿色的 ADD POD 一键创建。
这里给出的硬盘空间是指你博客的图片、文字等占用的空间,Ghost 本体的占用不会算在里面。
注意:CPU数量、内存、硬盘大小后期都是可以随意调整的,但是创建容器后服务器区域是不可变更的!!!
更新: 9月21日,在我还在写教程的时候收到官方邮件称:由于香港地区服务器需求过低,因此下架了香港地区服务器并迁移至了洛杉矶。(但是会对亚洲地区进行优化)
4. 等待20秒左右即可完成创建,点击 齿轮⚙️ 可以进入设置面板
控制台会显示当前的运行状态以及Ghost正在运行的版本。
PikaPod 会提供一个免费且可以自定义的三级域名供你使用,如果你已经购买域名 还可以开启 Custom Domain 开关,并配置 CNAME 以达到自定义域名的效果。
创建容器时,系统会随机分配一个域名,如果不满意可以自行修改。
SFTP 开关是访问该容器时需要使用的,因为你只对这个容器有所有权,但创建容器的VPS是 PikaPod 所有的,因此并不能像平时自己购买的VPS一样使用SSH连接。因此,当你需要上传主题文件或自定义某些配置时则需要使用到 SFTP。
开启后会显示访问容器的所需的:地址、用户名、端口、密码。
你可以使用 FileZilla 等 FTP工具进行连接,并修改、上传文件。
https://filezilla-project.org/
5. 点击 OPEN POD 进入容器即可进入你的博客首页。
初始页面预览,登陆后台之后可以更换其他模版。
如果想要进入管理员后台的话只需要在域名的加上 /Ghost 即可进入后台,例如:https://你的域名/ghost
首次登陆后台需要注册管理员信息,请牢记你的注册邮箱以及密码。
更多关于优化Ghost的教程会在下一篇推出。
无需担心,无论是使用命令行还是使用Docker安装,都只需要复制粘别即可完成安装!
Ghost Blog 是一款开源的 动态博客 ,它不可以像静态博客一样使用 Vercel/Railway/Netfily 这类云平台托管,因此我们需要准备一台服务器来运行 Ghost。
官方提供的安装途径
官方文档中推荐使用 运行内存 ≥ 1G,搭载了 Ubuntu 16.04 / 18.04 / 20.04 LTS 系统的服务器上。
除了基于 Node.js 运行(本文内容),Ghost 官方还提供 基于 Docker 运行的 Ghost Blog。
需要注意的是,今后你可能还会需要对博客进行 自定义主题、自定义 RSS、为文章添加目录等优化操作
指南的这一部分将确保满足安装Ghost-CLI的所有先决条件。
确保软件包列表和已安装的软件包是最新的。
# 通过终端/软件连接SSH
ssh root@你的服务器ip
# 更新系统软件包
sudo apt update && apt upgrade -y
按照任何提示输入您在上一步中刚刚创建的密码。
打开您的终端/SSH工具,并以root用户身份登录服务器:
注意:用户名使用ghost会导致与Ghost-CLI冲突,你可以使用除ghost 以外的任何名称
# 通过终端连接SSH
ssh root@你的服务器ip
# 创建一个新用户并按照提示操作创建密码,用户名需自行替换(不得使用 ghost 作为用户名)
adduser 用户名
例子:我想使用yummy作为用户名,则输入 adduser yummy,随后就会看见下面的代码。
Adding user `yummy' ...
Adding new group `yummy' (1000) ...
Adding new user `yummy' (1000) with group `yummy' ...
Creating home directory `/home/yummy' ...
Copying files from `/etc/skel' ...
# 看到这行的时候输入你希望设置的密码。(为了防偷窥,输入的密码是隐藏不可见的,输入完毕后回车即可)
New password:
# 重新输入上一步的密码
Retype new password:
# 看见这步则提示两次输入的密码相同,创建密码成功
passwd: password updated successfully
Changing the user information for yummy
# 这里可以无脑回车,你也可以自定义
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
# 确认信息输入正确后输入 y 并按下回车
Is the information correct? [Y/n]
为新增用户添加 sudo 权限,并将当前身份切换为该用户。
# 赋予用户 sudo 权限
usermod -aG sudo 用户名
# 切换到刚刚创建的新用户
su - 用户名
Ghost 需要使用到 NGINX 服务,SSL配置需要搭载 NGINX 1.9.5 或更高版本。
# 安装 NGINX
sudo apt-get install nginx
如果系统中ufw 处于开启状态,则需要防火墙允许Nginx的 HTTP 和 HTTPS 连接。
# 打开防火墙
sudo ufw allow 'Nginx Full'
# 开启成功将得到以下回应
Rules updated
Rules updated (v6)
接下来,您需要安装 MySQL 作为数据库。
# 安装 MySQL
sudo apt-get install mysql-server
MySQL 安装完成后,需要重设数据库 root 用户密码。
# 重置 MySQL root 密码
sudo mysql
# ‘mysql> ’ 字段不用复制
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
mysql> quit;
注意 Ghost 仅支持Node.js 14.x、16.x 两个大版本(推荐安装Node 16.x)
# 安装 curl 工具
sudo apt install curl
# 从 NodeSource 添加 Node.js 16 下载源
curl -sL https://static1.haohuo.net/uploads/images/2196230/2196230_setup_16.x | sudo -E bash
# 安装 Node.js
sudo apt-get install -y nodejs
服务器设置已完成,下面开始安装 Ghost-CLI
Ghost-CLI是一个命令行工具,可帮助您快速轻松地安装和配置Ghost以供使用,可以使用npm或yarn安装。
# 使用 npm 安装 Ghost-CLI
sudo npm install ghost-cli@latest -g
# 安装完成后可能会看到以下提示,这是由于 npm 存在新版本可升级的提示,不是软件报错!这里可以自行选择是否需要升级。
npm notice New minor version of npm available! 8.15.0 -> 8.19.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.19.2
npm notice Run npm install -g npm@8.19.2 to update!
# 升级 npm
npm install -g npm@8.19.2
安装后,您可以随时运行ghost help以查看可用命令列表。
当完成服务器设置以及安装 Ghost-CLI,我们就可以开始安装 Ghost 本体了
# 创建目录: 更改“站点名”为你喜欢的任何名称
sudo mkdir -p /var/www/站点名
# 设置该目录的所有者: 将用户名替换为“服务器设置”步骤中创建的用户名
# 注意区分用户名和站点名!
sudo chown 用户名:用户名 /var/www/站点名
# 设置文件夹权限
sudo chmod 775 /var/www/站点名
# 前往文件夹
cd /var/www/站点名
现在我们用最后一个命令行安装 Ghost。
# 开始安装 Ghost 本体
ghost install
# 检查系统环境
✔ Checking system Node.js version - found v16.17.0
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking free space
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Finishing install process
如果这一步,系统检测到任何一个未设置正确,可能是由于你的系统环境原先被修改过,这种情况需要您自行 Goole 寻求解答。
推荐使用全新安装的纯净系统进行安装。
在安装过程中,CLI会询问一些关于站点配置的问题。
安装过程中,每个配置中的()显示的内容均为默认配置,如无需修改可直接回车。否则,请自行输入后再按下回车!
# 输入网站要绑定域名的,不可使用IP地址作为域名,会报错!!!
? Enter your blog URL: http://xxx.com 或 https://xxxx.com
给纯小白的贴士:这里不一定非要 .com 网站
如果您使用 HTTPS,Ghost-CLI 将提供为您设置 SSL。
这决定了可以从何处访问MySQL数据库。
# 输入 MySQL 数据库服务器地址、用户名、密码、数据库名称
? Enter your MySQL hostname: localhost
? Enter your Ghost database name: db_ghost
✔ Configuring Ghost
✔ Setting up instance
+ sudo chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
# 输入数据库名称,这里系统会随机生成一个,直接回车即可。
? Enter your Ghost database name: db_ghost
✔ Configuring Ghost
✔ Setting up instance
+ sudo useradd --system --user-group ghost
# 输入用户密码
? Sudo Password [input is hidden]
+ sudo chown -R ghost:ghost /var/www/yummy/content
✔ Setting up "ghost" system user
如先前 MySQL 使用的是 root ,此处可以让 Ghost-CLI 自动创建一个属于 Ghost 数据库的用户
# 输入 Y 确定创建
? Do you wish to set up "ghost" mysql user? (Y/n)
✔ Setting up "ghost" mysql user
自动设置NGINX,使您的站点能够被外部访问。可以自己手动设置NGINX,但为什么要为难自己?
如果本机先前已有其它网站或需要使用自定义的网站环境,需要跳过自动配置 Nginx 与 SSL 证书
# 输入 Y 完成自动配置
? Do you wish to set up Nginx? (Y/n)
+ sudo mv /tmp/1230-one/1230.one.conf /etc/nginx/sites-available/1230.one.conf
+ sudo ln -sf /etc/nginx/sites-available/1230.one.conf /etc/nginx/sites-enabled/1230.one.conf
+ sudo nginx -s reload
✔ Setting up Nginx
如果您在第一步输入了带 https 的地址作为博客URL,并且正确配置了记录(在域名购买商处配置 A 记录)
# SSL证书设置需要一个电子邮件地址,以便在证书有任何问题时(包括在续订期间)随时通知您。
? Enter your email (For SSL Certificate)
Ghost-CLI可以使用 Let's Encrypt 自动为您设置SSL。或者,您可以稍后通过随时运行 "ghost instal ssl" 来执行此操作。
systemd是推荐的进程管理器工具,以保持Ghost平稳运行。我们建议选择 yes,但也可以设置自己的流程管理。
# 输入 Y 设置 systemd
? Do you wish to set up Systemd? (Y/n)
+ sudo mv /tmp/yummy/ghost_yummy.service /lib/systemd/system/yummy.service
+ sudo systemctl daemon-reload
✔ Setting up Systemd
+ sudo systemctl is-active ghost_yummy
9.启动 Ghost
# 输入 Y 启动 Ghost
? Do you want to start Ghost? (Y/n)
+ sudo systemctl start ghost_yummmy-best
+ sudo systemctl is-enabled ghost_yummmy-best
+ sudo systemctl enable ghost_yummmy-best --quiet
✔ Starting Ghost
Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/docs/config/#mail
------------------------------------------------------------------------------
# 当显示这条信息时,表示 Ghost 已完成安装流程
Ghost was installed successfully! To complete setup of your publication, visit: https://yummmy.best/ghost/
打开浏览器,输入你的博客域名,即可看到博客首页
如果想要进入管理员后台的话只需要在域名的加上 /Ghost 即可进入后台,例如:https://你的域名/ghost
首次登陆后台需要注册管理员信息,请牢记你的注册邮箱以及密码。
更多关于优化Ghost的教程会在下一篇推出。
问:卡牌大师游戏闪退怎么解决?答:游戏闪退无非就是内存不足的问题,通常情况下,内存不足就会出现游戏闪退。这个时候将不用的程序清理掉,就可以玩了。当然也会出现因游戏文件包损坏,导致游戏闪退弹出。这种情况一般都是非法安装外挂和辅助造成的,所以建议大家不要用辅助等类型的第三方软件。以上就是常见的二种现象,
2024-11-22 10:29:28
炸麻叶儿是我们北方的传统特色小吃,小时候逢年过节、家家户户都会预备一些,焦香酥脆、越嚼越香,可是那时候最好的零食。现在生活条件好了,各式各样的零食应接不暇,眼看着这些传统的、经典的小吃逐渐淡出了大家的视野,着实觉得有些可惜。今天,我就把这款地道的、河南特有的、酥的直掉渣的炸麻叶做法,再给大家分享一遍
2024-11-22 09:35:04
最近发现,越来越多的人开始喜欢机械手表了。相比石英手表,机械手表虽然更贵,但是也更有质感和品味,也是不争的事实。相信很多越来越喜欢机械表的人都是认定了这个理儿。其实,我们常听说的一些大牌钟表,都是以机械手表见长,甚至有不少大牌手表都没有石英手表,比如朗格、宝玑等。论知名度和影响力,以下这些机械手表比
2024-11-22 09:19:48
用料青辣椒一根 红萝卜一根 生芒果一颗 盐渍话梅3粒切丝 日本话梅片6片切丝 备用 柠檬汁适量 矿泉水适量 少许盐 糖 太太乐鸡汁适量调一个咸鲜口 好了… 做法步骤1、买一个芒果准备学做牛肉芒果条菜的…2、切开一看 哇~生的 …3、只能改菜了 凉拌吧 红萝卜切丝 青椒切丝 盐渍话梅切丝(切出来成粒了
2024-11-22 09:04:05
传说东汉刘秀在未登大宝前有过一段很落魄的日子,亏得一位农村老汉割了一种野菜给刘秀充饥,刘秀吃后觉得甚是美味,便给野菜起了“救菜”的名字。此菜就是现在的韭菜,古语有云:“春初早韭,秋末晚菘”,意思是初春时刻,在经历过一个寒冬的缓慢生长后,是韭菜最为鲜嫩完美的一段时间,晚秋次之,夏天味道最差,所以各位碰
2024-11-22 08:49:26
今天来跟大家分享一个洋葱肉丸汤的做法,这样做出来的肉丸子非常好吃,比较鲜嫩,一点也不柴,爽滑可口,而且汤汁喝起来特别鲜美,光看着就让人特别有食欲,而且它的营养特别丰富。这道洋葱肉丸汤的做法是比较简单的,很容易就能够做出来,非常适合在夏天食用。如果家里有小朋友,那么经常给它吃这样的洋葱肉丸汤,可以起到
2024-11-22 08:34:03