阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 1405阅读
  • 0回复

[网站运营]CentOS Ghost安装教程(PM2+Nginx)

级别: 论坛版主
发帖
371
云币
447

kKEs >a  
什么是Ghost? >,)tRQS  
f?|cQ[#t!\  
Q/<?v!h{  
Ghost是一个基于Node.js的博客程序。 (nLT 8{>0  
$~FnBD%|{  
3}9c0%}F  
Ghost 官方推荐使用 Node 0.10.x 版本,同时支持 Node 0.12.x 和 4.2.x 版本。 WXX)_L$2  
2E*h,Mo  
5svM3  #  
安装Ghost $K}Y  
T99\R%  
0$A7"^]  
首先先需要安装Node.js,安装Node.js教程太多,这里不再赘述。过去写过一篇编译安装Node.js可供参考(版本号己改:http://codesky.me/archives/centos-nodejs-install.wind %1^E;n  
Z%\*\6L)  
1DT}_0{0Q  
接下来下载Ghost,除了官网下载之外,这里推荐一下:http://www.ghostchina.com/download/ 0;  BX  
)CM3v L {  
[OK(  
我下载了中文标准版,上传服务之后解压缩:unzip -uo ghost.zip -d ghost rVF7!|&  
0` \!O(jJ  
h#Q Sx@U6  
接下来切换到Ghost目录:cd /你的 Ghost 解压目录 C6ry]R@  
Tj v)jD  
h<I C d'!  
npm install --production来进行安装 Ti!<{>  
"ukiuCfVuW  
^a{cK  
Ghost默认选用的是SQLite,如果你需要搭配其他数据库(比如MySQL),见此参考链接:在CentOS 系统上搭建安装 Ghost博客。如果你是新手,不建议对MySQL/Nginx等做过多修改(避免Boom),可以之后在自己的虚拟机之类的地方折腾积累经验,毕竟博客重要的是写文,所以那篇……看看就好。 g886RhCe  
!aQQq[  
])3(@.  
这里顺便友情提示,MySQL的日志文件查看:less /var/log/mysqld.log ^DH*\ee  
}{S f*  
3:~ *cU  
如果你的MySQL无法启动,第一时间看看日志文件。 LCouDk(=`  
>3&Oe  
"s.]amC  
全部完成之后npm start,注意,此时启动是使用的默认的development环境,我们上线时,肯定用的是production,development可供调试和二次开发等。 |w3b!  
09L"~:rg  
S&Szc0-|k  
默认会运行在:127.0.0.1:2368中,通过127.0.0.1:2368/ghost可以访问后台(初始化博客) $l+DkR+  
S2,tv  
ILyI%DA&  
配置Ghost }ofx?s}  
eb#p-=^KP  
zPn 2  
如果测试无误,也就是说我们安装完毕了,下一步就要开始配置Ghost了,其实也没什么好改的,在production里把url修改为你需要绑定的域名或IP即可(此处似乎与后台传送门相对应,因此需要修改),其他可以不用动。 PqVz ^(Wz  
0LD$"0v/C3  
Uuq*;L  
之后我们把Node改为production环境 7*I:cga  
=Owr l'@|T  
4Mck/i2  
echo "export NODE_ENV=production" >> ~/.profile i2&I<:  
source ~/.profile Ehw2o-s^  
配置PM2 r~q 3nIe/,  
"%E<%g  
 TnXx;v  
如果你还没有安装过,那么接下来先安装PM2:npm install -g pm2 VV$4NV&`Q  
zz* *HwRt  
>_'0 s  
此处可见教程:Node.js PM2 愉快部署Node.js rm?C_  
tB{HH%cV  
VqL#w<A %  
选择PM2是因为其方便快捷,你也可以选用其他服务,在本文参考链接中将给出。 a>8&B  
0i3Z7l]  
;m#_Rj6  
于是pm2 start index.js -n ghost 5`\"UC7?%  
1G<S'd+N  
p>9|JMk  
配置Nginx %n@ ^$&,&;  
如果你还没有安装过,可以参考:CentOS yum配置LNMP服务器(Nginx+PHP+MySQL) ?"-1QG  
U+-R2w]#q_  
9!?Ywc>0#  
在CentOS中,尤其注意需要配置iptables打开80端口,否则外部无法访问。(当然高版本的CentOS7貌似是没有iptables的?如果是Ubuntu,我记得也是没有这个的) ifI0s)Pn  
FxdWJ|rN9D  
)o`[wq  
配置Nginx反向代理,使其通过80端口访问,日后我们可以绑定多个端口,过去也有博文:CentOS Nginx反向代理 + Apache配置 8T5W6Zs1  
iiLDl  
zGaqYbQD  
由于这里我们不用配置Apache,所以步骤没有那么多: BT^HlW<  
vi /etc/nginx/conf.d/default.conf 4QBPN@~t  
V>(>wSR  
~c`%k>$  
在server_name一行后加入(大致可以参考上文): 9Yhl q$;g  
~B\O{5W  
P!u0_6  
    location / { C 8KV<k  
        proxy_set_header   X-Real-IP $remote_addr; 9Ecc~'f  
        proxy_set_header   Host      $http_host; WP5Vev9*+  
        proxy_pass         http://127.0.0.1:2368; 6Z<|L^  
    } oq9gFJG(  
基本上就变成了: te;VGpv.  
!CUM*<iV  
95mwDHbA  
server { #H;1)G(/  
    listen 80; 3}5Ya\x  
    server_name example.com; Q9k;PJ`@  
    location / { a[jNT$8  
        proxy_set_header   X-Real-IP $remote_addr; *X uIA-9  
        proxy_set_header   Host      $http_host; NtNCt;_R7  
        proxy_pass         http://127.0.0.1:2368; } 8[  
    } nCDG PzJ  
} E&dxM{`  
当然,如果我们需要配置多个子目录,也很简单: vLpIVNA]]Y  
g>QN9v})  
=g|5VXW5  
server { "u)Le6.  
    listen 80; S5\KI+;PW  
    server_name example.com; 3LZvlcLb  
    location / { M_h8{  
        proxy_set_header   X-Real-IP $remote_addr; )cU$I)  
        proxy_set_header   Host      $http_host; 5DJ!:QY!  
        proxy_pass         http://127.0.0.1:3000; Q@[(0R1  
    } q<[o 4qY  
    location /ghostblog { T%aM~dp  
        proxy_set_header   X-Real-IP $remote_addr; X/h|;C* 9  
        proxy_set_header   Host      $http_host; %WPy c%I  
        proxy_pass         http://127.0.0.1:2368; j>G|Xv  
    } ]U&<y8Q_6  
} ?3gf)g=  
虽然我们不懂Nginx,不过这里很简单就能看出来,做反向代理还是很简单的,这样可以节约对外映射的端口数,也更加友好——试想一下别人看到你莫名其妙端口号的表情。(由于我的VPS是配置过PHP的,通过这种方法也能够让PHP和Node程序共用端口——其实是反向代理,非常爽)如果你的Node或者其他程序还在不断的占用你的端口们,请快点用Nginx解脱你的对外端口吧(Apache亦可,不过性能Nginx更好)。 K%UjPzPWw  
Bh7hF?c Sj  
Cx&l0ZXHEX  
配置完成,重启Nginx:/etc/init.d/nginx restart Bm  4$  
_<'?s>(U'  
sF3@7~m4  
转载:CodeSky 代码之空 X6=o vm  
7C wWf  
=t %;mi,M  
参考资料 rdsZ[ii  
lUdk^7:M  
`6(Zc"/ \m  
MySQL安装: WLiFD.  
qMw_`dC  
j /@<=  
CentOS yum配置LNMP服务器(Nginx+PHP+MySQL) 6{I6'+K~  
Vi>P =i  
R ^ZOcONd-  
CentOS 编译安装MySQL5.6.17 s1tkiX{>  
Eqi;m,)  
l| y.6v  
PM2: ihekON":  
Keep Ghost Running with pm2 u8gqWsvruM  
^Jw=5 ImG  
P9 y+rF.  
其他: c}s#!|E0v  
NKTy!zWh  
B>c2 *+Bk  
Ghost部署与安装全教程
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)