先祝大家
为了让旅伴发发牢骚,就装了一个 Ghost 博客系统咯~
汝连啥是 Ghost 都不知道?
Ghost是用JavaScript编写的博客平台,基于MIT许可证开放源代码。Ghost的设计主旨是简化个人网站发布以及网上出版的过程。
Ghost是一款个人博客系统,它是使用Node.js语言和MySQL数据库开发的,同时支持MySQL、MariaDB、SQLite和PostgreSQL。用户可以在支持Node.js的服务器上使用自己的博客。
简单来说,Ghost 是一套博客平台,是一套博客平台,是一套博客平台! (重要的事情说三遍😂😂)
要安装 Ghost 需要啥?
因为 Ghost 是用 Node.js 写成的,所以要安装 Ghost , 汝需要先装上 Node.js 和 npm 呗~
截至写这篇文章时,Arch Linux 官方源里 Node.js 的版本是 5.6.0 ,而 Ghost 的计划是只支持 Node.js 的
这里(和咱在 AUR 的 ghost 软件包里)用到了一个环境变量
GHOST_NODE_VERSION_CHECK=false
来不让 ghost 来检查 node 的版本,在 Node.js 下一个 LTS 版本(6.x)出来前先凑合一下呗~
sudo pacman -S nodejs npm
如果汝认为自己的博客会做的比较大,需要一个数据库系统的话,咱推荐 mariadb 呗~
从 AUR 安装 Ghost
然后从 AUR 安装 ghost AUR (这个包是咱更新的,有问题尽管 pia 咱~).
如果汝有 yaourt 的话,
yaourt -S ghost
这会把 ghost 安装在
/srv/ghost/
目录,由于创建的 ghost 用户不能通过 shell 登录,要修改这个目录的文件的话:
修改
/etc/passwd
文件:ghost:x:738:738::/srv/ghost:/usr/bin/nologin
把
/usr/bin/nologin
换成/bin/bash
,保存.这样以后可以通过
sudo su ghost
切换到 ghost 用户对 /srv/ghost 目录写入了.通过下面的命令以 ghost 用户运行一条命令:
# su 后面的 -s 参数可以制定切换用户后运行的 shell , # -c 参数可以指定要运行的命令. sudo su ghost -s /bin/bash -c "此处是汝的命令,记得带上引号"
通过源代码安装 Ghost
首先把 ghost 的源代码下载下来并解开:
# 这时最新的版本是0.7.6.
wget https://ghost.org/zip/ghost-0.7.6.zip
unzip ghost-0.7.6.zip
cd ghost-0.7.6
接下来通过 npm 安装需要的依赖,因为上面的提示嘛~
GHOST_NODE_VERSION_CHECK=false npm install
修改配置文件
如果是通过 AUR 安装的,配置文件位于
/srv/ghost/config.js
如果是通过源代码安装的,从目录中先复制一份样例出来呗~
cp config.example.js config.js
这里的例子是修改
Production
一节
(这一节是汝的 Ghost 实际运行时的配置,下面的 Development 一节是开发时的配置)
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
// 汝的网址?
url: 'http://localhost',
mail: {},
// 汝想使用那种数据库?
// 下面的例子是 sqlite3 数据库,配置文件中还有设置 MariaDB 数据库 的样例
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: falseProduction
},
server: {
host: '127.0.0.1',
port: '2368'
}
},
如果汝的 Ghost 和汝进行操作的电脑是同一个
通过下面的命令来测试汝的 Ghost 呗~
cd /path/to/ghost
GHOST_NODE_VERSION_CHECK=false
如果汝是从 AUR 安装的,可以通过 Systemd 来启动
sudo systemctl start ghost
现在打开
http://localhost:2368
看看效果呗~
如果汝的 Ghost 和汝进行操作的电脑不是同一个
比如汝在 VPS 上安装了 Ghost,就需要用一个 web服务器通过反向代理来访问呗~
首先修改
config.js
把 Production 中的 URL 换成汝的网址啦~
如果汝在用 Nginx, 把这一段增加到汝的
server
块中:
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
# 汝的更多自定义设置
}
如果汝在用 Apache, 把下面一段添加到汝的 httpd.conf 的 vhost 段中(首先要启用 mod_proxy 模块~):
ProxyPass / http://localhost:2368/
ProxyPassReverse / http://localhost:2368/
ProxyHTMLURLMap http://localhost:2368/ /
RequestHeader set X-Forwarded-For $proxy_add_x_forwarded_for
RequestHeader set Host $host
RequestHeader set X-Forwarded-Proto $scheme
然后重新启动 ghost 和 web 服务器以后试试通过汝的网址访问?
打开
http://汝的ghost网址/ghost/
开始设置汝的 Ghost 博客呗~