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

0. 前言

「博客」真的是这个时代最好的产物之一,互联网拉开了人们之间的距离,而博客的诞生却又拉近的人们的距离。想在互联网中,表达自己的想法,那么就去写博客吧;刚开始学习Web开发,最好的实战项目就是写一个博客系统吧;学习Linux运维,记了那么多的命令,来,检验一下,给我搭个开源博客系统吧。 最流行的开源博客平台,有WordPress和Ghost。而Ghost应该是这个时代最流行的开源博客系统,为什么说是这个时代最流行呢?因为它是基于Node开发的。相比于PHP开发的WordPress,它可显得年轻多了,年轻的好处就是时尚,轻量,有活力。 好了,废话也不多说了,记录一下在Ubuntu下,搭建Ghost博客系统的经历,希望对你有帮助。 ### 1. 准备工作 拿到一个台Ubuntu服务器,准备工作还是比较多的,好在前面两篇文章,我已经把该准备的都准备好了。 一些必要的环境以及软件,都已经安装完成。例如:Node,Wget,Git等。代理服务器Nginx也准备妥当,这里不再赘述了。 ### 2. 安装Ghost 这是我所见过最简单的安装方式了,打开下载链接,哦,不对,服务器上是文本界面,可没办法打开下载链接。好在,我们下载了Wget呀。 sh wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip 该链接是最新的Ghost 中文集成版,所谓集成版,就是把node_modules里的一些依赖包,全部包含在内了。这样可是方便极了,解压就可以直接用了。 ```sh

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

解压完,就算安装完了。Linux上的软件安装就是这样简单粗暴,放好地方就可以了。 > ps. 如果你不喜欢使用wget命令,你可以通过其他方式,只要把Ghost压缩包导入服务器上就行了。例如,使用sftp的一些工具。 ### 3. 启动服务 安装完了,进入Ghost文件夹,执行启动命令: sh 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配置文件:

location / {         proxy_pass http://127.0.0.1:2368;     } } ```
`server_name`处为你的域名,`proxy_pass`表示请求将转给Ghost服务,最后重载Nginx,`sudo nginx -s
reload`,一切准备就绪,如不出意外,直接访问域名,将显示前台页面如下:  ![](/image/ubuntu3-4.jpg)
访问`http://www.yourdomain.com/ghost`,将显示后台首页,如下图:
![](/image/ubuntu3-2.jpg)  完,祝玩得开心。