好久没有写博客,也好久没有弄网站,于是趁有点时间,再次折腾折腾,虽然很费劲,但是工程量也是在一天之内就可以完成了。
本来没有打算折腾,直接放到farbox算了,但是看到的farbox的收费政策时候也是略微有点不舒服,毕竟65块钱的大洋只能有2G的流量。虽然没打算建立一个特别大的网站,但是有时候放点东西下载下载也就没有了。因此即便是所有的东西都准备好了,farbox空间也是收拾干净了,但是还是开始折腾一个Blog。
因为有WordPress的折腾经验,但是每次打开WordPress后台的那个速度,直接就放弃了,打算换一个轻便的Blog。在Hexo和Ghost之间徘徊了好久,还是选择了Ghost。原因如下:
- Ghost在官网部署是收费的,存在商业模式的话稳定性会可靠一点;
- Hexo没有后台,命令行的操作适合特别爱折腾的人;
- Ghost发布了桌面版,用起来很舒服;
鉴于上面的三个原因,直接开始折腾Ghost了,但是考虑到没有任何node.js的经验,也是费了好大力气,简要记录一下折腾过程。
1.重装VPS
VPS是在搬瓦工买了,现在掐指算算已经有5个VPS了(搬瓦工两个;BudgetVM一个;阿里云一个:OneAisaHost一个)。清了一个搬瓦工的VPS,然后更换成了CentOS 7。似乎CentOS 7 只有64位了。没关系,后台一键重装。
2.安装node.js
node.js有点类似于PHP和Python,可以用来开发web环境。现在最新的版本到了v6.3.1,但是Ghost并不支持这么高的版本,其根据版本的不同,采用的node.js环境并不一样。可以去Ghost的WiKi看一下就知道了。这个我们安装的是中文版的Ghost,版本号为0.7.4.采用的node.js环境是v0.10.40。可以直接去官网的Previous Releases下载,考虑到时间成本,这里不使用源代码编译安装,而是直接下载编译好的版本:
1 2 3 4 |
wget https://nodejs.org/download/release/v0.10.40/node-v0.10.40-linux-x64.tar.gz xz -d node-v0.10.40-linux-x64.tar.gz tar -xvf node-v0.10.40-linux-x64.tar.gz mv node-v0.10.40-linux-x64 /usr/local/node |
直接将压缩包解压并拷贝到了/usr/local/node
文件夹下面,下面要做的就是将该文件夹增加到系统环境中,这样的话直接输入npm
和node
命令就可以直接起作用了:
1 2 3 |
vim /etc/profile #末尾增加下面语句后保存退出 export PATH=$PATH:/usr/local/node/bin |
这样我们可以使用node -v
和npm -v
查看版本号了。
3.安装nginx
如果是直接安装了Ghost是并不能在外网进行访问的,这是因为默认的Ghost是内网访问,这里使用Nginx增加一个反向代理层。用以将内网的访问转发出来。这个其实很常见,国内的盗版谷歌学术网站就是这样一个道理。
首先增加原配置文件:
1 |
vi /etc/yum.repos.d/nginx.repo |
并增加下面的内容:
1 2 3 4 5 |
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 |
之后便是安装:
1 2 3 |
yum install nginx -y service nginx start chkconfig nginx on |
chkconfig
命令用于设置开机启动。
4.配置Nginx
这里为了简单直接,我直接配置了https。在/etc/nginx/conf.d/
下面创建一个conf文件,用以配置网站信息,名字随意,我的是orycho.conf
。然后再里面增加下面的信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
server { listen 80; # listen 443 ssl; server_name orycho.com; # ssl_certificate /etc/ssl/orycho.crt; # ssl_certificate_key /etc/ssl/orycho.key; location / { # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; # proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368; } } |
如果你也有https证书的话,将上面配置内容的中的#
去除,修改ssl_certificate
和ssl_certificate_key
的路径。
保存退出,重启nginx:
1 |
service nginx restart |
这样即完成了Nginx的配置。
5.安装mysql
用惯了mysql后还是使用mysql才习惯,但是在CentOS 7 下安装mysql会出问题,平时我们使用下面的命令安装mysql:
1 2 3 |
yum install mysql yum install mysql-server yum install mysql-devel |
出现的问题就是:
1 |
No package mysql-server available. |
是因为CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。
从starof那边找到了两种方法,我直接使用了第一种,就是安装mariadb,即mysql的替代方案。
1 |
um install mariadb-server mariadb |
安装完成之后基本操作和mysql是一致的,但是启动、关闭和重启不同:
1 2 3 4 |
systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动 |
之后进行安全配置:
1 |
mysql_secure_installation |
在设置root密码的时候,默认密码为空,因此直接回车即可,之后基本一路Y
即可。
最后就是设置配置数据库的中文设置:
1 |
vi /etc/my.cnf |
增加下面的内容:
1 2 3 4 5 6 7 |
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci |
然后重启数据库:
1 |
systemctl restart mariadb |
最后建立一个数据库放信息:
1 2 3 4 |
mysql -u root -p # 输入密码 create database ghost; # 创建orycho数据库 grant all privileges on orycho.* to 'orycho'@'%' identified by 'orycho'; # 新建用户orycho,密码orycho flush privileges # 重新读取权限表中的数据到内存,不用重启mysql就可以让权限生效 |
这一步完成。
6.安装Ghost
直接去中文官网下载并解压后修改配置:
1 2 3 4 5 6 |
cd /var/www wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip unzip Ghost-0.7.4-zh-full.zip -d ghost cd ghost cp config.example.js config.js vi config.js |
内容如下:
这里我注释掉了sqlite3的数据库,增加了并采用了mysql数据库,建议将这个文件拖到本地进行编辑,因为后面还可以配置七牛云、阿里云和又拍云等。
保存后退出,并用下面命令启动Ghost:
1 |
npm start --production |
上面的这行命令务必在ghost文件目录下执行,不然各种npm ERR
!
之后启动浏览器,输入域名就可以看到自己的网站了。
7.Ghost的运行
上面命令运行后不能退出了,不然网站就关掉了,因此我采用了PM2进行node.js运行环境部署,PM2的官网做的相当炫酷啊。
直接在ghost的目录下部署:
1 2 3 4 5 |
cd /var/www/ghost npm install pm2 -g NODE_ENV=production pm2 start index.js --name "ghost" pm2 startup centos pm2 save |
下面的命令用来启动、停止和重启ghost:
1 |
pm2 start/stop/restart ghost |
这样就完成部署了。
当然PM2还有很多好玩的,可以输入pm2 monit
查看进程运行情况、pm2 list
可以列表显示,非常的炫酷。如果在PM2的官网上注册一个账号,会得到一个命令,在VPS里面直接执行,就可以将自己的VPS连接PM2的监控系统,直接可以图形化显示VPS的性能参数。
8.End小结
今天是折腾了一天的,从早上的阿里云域名实名认证,到后来的SSL证书申请,node.js的安装,CentOS 7数据库的安装以及Ghost的安装。完整的弄了一天。当然最重要的是在网络上已经有很多高手分享了自己的经历,从而才能在一天之内完成安装,如果没有这些资料的话,肯定是要折腾几天的。在此要特别感谢一下文末给出的文章的作者。
请问您能给我Ghost-0.7.4-zh-full.zip吗?官网下载不到,谢谢!2535191782@qq.com
我也没有这个版本了,这应该是很久以前的版本了。