当你拿到一台Ubuntu服务器(3)- 搭建Ghost

0. 前言

「博客」真的是这个时代最好的产物之一,互联网拉开了人们之间的距离,而博客的诞生却又拉近的人们的距离。想在互联网中,表达自己的想法,那么就去写博客吧;刚开始学习Web开发,最好的实战项目就是写一个博客系统吧;学习Linux运维,记了那么多的命令,来,检验一下,给我搭个开源博客系统吧。

最流行的开源博客平台,有WordPress和Ghost。而Ghost应该是这个时代最流行的开源博客系统,为什么说是这个时代最流行呢?因为它是基于Node开发的。相比于PHP开发的WordPress,它可显得年轻多了,年轻的好处就是时尚,轻量,有活力。

好了,废话也不多说了,记录一下在Ubuntu下,搭建Ghost博客系统的经历,希望对你有帮助。

1. 准备工作

拿到一个台Ubuntu服务器,准备工作还是比较多的,好在前面两篇文章,我已经把该准备的都准备好了。

一些必要的环境以及软件,都已经安装完成。例如:Node,Wget,Git等。代理服务器Nginx也准备妥当,这里不再赘述了。

2. 安装Ghost

这是我所见过最简单的安装方式了,打开下载链接,哦,不对,服务器上是文本界面,可没办法打开下载链接。好在,我们下载了Wget呀。

wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip

该链接是最新的Ghost 中文集成版,所谓集成版,就是把node_modules里的一些依赖包,全部包含在内了。这样可是方便极了,解压就可以直接用了。

# 解压命令
unzip Ghost-0.7.4-zh-full.zip -d Ghost/

解压完,就算安装完了。Linux上的软件安装就是这样简单粗暴,放好地方就可以了。

ps. 如果你不喜欢使用wget命令,你可以通过其他方式,只要把Ghost压缩包导入服务器上就行了。例如,使用sftp的一些工具。

3. 启动服务

安装完了,进入Ghost文件夹,执行启动命令:

sudo npm start

如果duang,报错了(没有什么事情是一帆风顺),如下图:

好在这个问题,一眼看明白了,Node的版本问题,更好在,这个问题特别好解决,安装模块nn是一个管理Node版本的模块,安装命令:

sudo npm i n -g

一定要全局安装,安装好了之后,运行命令安装4.2.0版本:

sudo n 4.2.0

duang,又报错了,没事,Linux就贵在折腾。

为啥输入命令n可以执行,而sudo n就找不到命令呢?问题肯定出在sudo上,sudo的配置文件是/etc/sudoers,使用VIM打开看看:

...
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
...

看到这句,差不多也猜出来了,这个应该是sudo的命令范围,尝试在后面加上命令n的路径,修改如下:

...
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/node/bin"
...

在执行命令sudo n 4.2.0,顺利安装,并切换Node版本到4.2.0。接着执行sudo npm start,不出意外,显示如下:

➜  Ghost npm start

> ghost@0.7.4 start /Users/lupeng/Desktop/Ghost
> node index

Migrations: Database initialisation required for version 004
Migrations: Creating tables...
Migrations: Creating table: posts
Migrations: Creating table: users
Migrations: Creating table: roles
Migrations: Creating table: roles_users
Migrations: Creating table: permissions
Migrations: Creating table: permissions_users
Migrations: Creating table: permissions_roles
Migrations: Creating table: permissions_apps
Migrations: Creating table: settings
Migrations: Creating table: tags
Migrations: Creating table: posts_tags
Migrations: Creating table: apps
Migrations: Creating table: app_settings
Migrations: Creating table: app_fields
Migrations: Creating table: clients
Migrations: Creating table: client_trusted_domains
Migrations: Creating table: accesstokens
Migrations: Creating table: refreshtokens
Migrations: Populating fixtures
Migrations: Populating permissions
Migrations: Creating owner
Migrations: Populating default settings
Migrations: Complete
Ghost is running in development...
Listening on 127.0.0.1:2368
Url configured as: http://localhost:2368
Ctrl+C to shut down

初次运行,初始化数据库,启动服务,服务端口为2368,通过http://localhost:2368就可以访问服务了。哦,不对,服务器端没有浏览器呀,不过可以通过公网IP地址访问。

4. Nginx配置

历经各种曲折,终于启动了Ghost服务,接下来是最后一步,配置域名访问。在配置域名之前,你需要有一个已经备案过的域名,且域名解析到服务器公网地址上,到这一步,其实就可以通过域名访问了。

通常情况下,服务端的请求,最好通过代理服务器进行转发,这里选择了Nginx。前面介绍过Nginx的安装与配置,这里就简单了。打开Nginx配置文件:

server{
    listen  80;
    server_name www.yourdomain.com;
    location / {
        proxy_pass http://127.0.0.1:2368;
    }
}

server_name处为你的域名,proxy_pass表示请求将转给Ghost服务,最后重载Nginx,sudo nginx -s reload,一切准备就绪,如不出意外,直接访问域名,将显示前台页面如下:

访问http://www.yourdomain.com/ghost,将显示后台首页,如下图:

完,祝玩得开心。


Comments
Write a Comment