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

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

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

?z u8)U  
什么是Ghost? w%sT{(Vd`C  
@=kSo -SX  
u<&m]] *  
Ghost是一个基于Node.js的博客程序。 SX-iAS[<  
g=o4Q< #^y  
 8dyg1F  
Ghost 官方推荐使用 Node 0.10.x 版本,同时支持 Node 0.12.x 和 4.2.x 版本。 {]|J5Dgfe  
-Y;3I00(  
TuqH*{NNy9  
安装Ghost 0qT%!ku&  
&jr3B;g!C  
2f_:v6   
首先先需要安装Node.js,安装Node.js教程太多,这里不再赘述。过去写过一篇编译安装Node.js可供参考(版本号己改:http://codesky.me/archives/centos-nodejs-install.wind C"enpc_C/  
6S\8$  
<rSF*  
接下来下载Ghost,除了官网下载之外,这里推荐一下:http://www.ghostchina.com/download/ B?o7e<l[  
M& CqSd  
ItTz.sQ  
我下载了中文标准版,上传服务之后解压缩:unzip -uo ghost.zip -d ghost jlg(drTo  
ei5~&  
uRe'%?W  
接下来切换到Ghost目录:cd /你的 Ghost 解压目录 T9q-,w/j;  
sUm'  
1g~R/*Jo  
npm install --production来进行安装 .w ,q0<}  
dGTsc/$  
4I5Y,g{6+  
Ghost默认选用的是SQLite,如果你需要搭配其他数据库(比如MySQL),见此参考链接:在CentOS 系统上搭建安装 Ghost博客。如果你是新手,不建议对MySQL/Nginx等做过多修改(避免Boom),可以之后在自己的虚拟机之类的地方折腾积累经验,毕竟博客重要的是写文,所以那篇……看看就好。 Oz#{S:24M+  
pFz`}?c0  
]"1DGg \A  
这里顺便友情提示,MySQL的日志文件查看:less /var/log/mysqld.log RY*U"G0#w  
F1Bq$*'N$w  
_n\GNUA  
如果你的MySQL无法启动,第一时间看看日志文件。 ,wdD8ZT'Ip  
fLAw12;^  
ROZF)|l  
全部完成之后npm start,注意,此时启动是使用的默认的development环境,我们上线时,肯定用的是production,development可供调试和二次开发等。 B^jc3 VsR  
@gXx1hEg  
:S(ZzY Q  
默认会运行在:127.0.0.1:2368中,通过127.0.0.1:2368/ghost可以访问后台(初始化博客) W'u>#  
mUx+Y]Ep  
zs#@jv$  
配置Ghost SOvF[,+  
[;myHI`tw  
{P#|zp4C{  
如果测试无误,也就是说我们安装完毕了,下一步就要开始配置Ghost了,其实也没什么好改的,在production里把url修改为你需要绑定的域名或IP即可(此处似乎与后台传送门相对应,因此需要修改),其他可以不用动。 YkQd  
_/<x   
2jCfT>`3  
之后我们把Node改为production环境 IRqy%@)  
KRKCD4  
QUQ'3  
echo "export NODE_ENV=production" >> ~/.profile DrK{}uM  
source ~/.profile Z>#i**  
配置PM2 0NX,QD  
?p8_AL'RS  
pIKPXqA  
如果你还没有安装过,那么接下来先安装PM2:npm install -g pm2 ! #2{hQRu  
~gRf:VXX=_  
jsi!fx2Rm  
此处可见教程:Node.js PM2 愉快部署Node.js Q#[9|A9  
2WYPO"q  
Z0r?| G0  
选择PM2是因为其方便快捷,你也可以选用其他服务,在本文参考链接中将给出。 FH+s s!  
HT1!5  
"@,}p\  
于是pm2 start index.js -n ghost /%A*aGyIc  
 U}j0D2  
u!qP  
配置Nginx W-zP/]Dh  
如果你还没有安装过,可以参考:CentOS yum配置LNMP服务器(Nginx+PHP+MySQL) <B8!.|19  
#|PS&}6wU  
e.V:)7Uc  
在CentOS中,尤其注意需要配置iptables打开80端口,否则外部无法访问。(当然高版本的CentOS7貌似是没有iptables的?如果是Ubuntu,我记得也是没有这个的) "C0Q(dr/n  
h2 ;F  
)U{Qj5W+F  
配置Nginx反向代理,使其通过80端口访问,日后我们可以绑定多个端口,过去也有博文:CentOS Nginx反向代理 + Apache配置 s#=7IH30  
,]c 1A$Sr0  
{fn!'  
由于这里我们不用配置Apache,所以步骤没有那么多: >[=^_8M  
vi /etc/nginx/conf.d/default.conf (mtk 4  
l3F6AlPql  
D]Xsvv #  
在server_name一行后加入(大致可以参考上文): 03S]8l  
/{--+ C  
K~eh P[^  
    location / { agW@ {c  
        proxy_set_header   X-Real-IP $remote_addr; OMg<V  
        proxy_set_header   Host      $http_host; dQR-H7U  
        proxy_pass         http://127.0.0.1:2368; G?/DrnK:  
    } =]Jd9]vi  
基本上就变成了: 'qX|jtdM  
oc0G |  
L"Olwwmk  
server { Bad:n o\W  
    listen 80; Jidwt$1l(  
    server_name example.com; s 15 oN  
    location / { )*x6 FfTUd  
        proxy_set_header   X-Real-IP $remote_addr; |02gupqqi  
        proxy_set_header   Host      $http_host; >y:,9;  
        proxy_pass         http://127.0.0.1:2368; 1gN=-AC  
    } 0o*8#i/)!3  
} b9<#K+L-  
当然,如果我们需要配置多个子目录,也很简单: <.izVD4/Gg  
(7=!+'T"  
I( 7NQ8H x  
server { @>>~CZ`l  
    listen 80;  l(tOe  
    server_name example.com; Opc ZU{4 b  
    location / { )6,=f.%  
        proxy_set_header   X-Real-IP $remote_addr; q}#6e]t  
        proxy_set_header   Host      $http_host; YRN06*hS  
        proxy_pass         http://127.0.0.1:3000; 2OR{[L*  
    } 0+;bh {Eu  
    location /ghostblog { Y U5(g^<  
        proxy_set_header   X-Real-IP $remote_addr; NDlF0f  
        proxy_set_header   Host      $http_host; hD*SpVI U  
        proxy_pass         http://127.0.0.1:2368; kbMWGB%;  
    } g+>(dnX  
} H0`]V6+<f  
虽然我们不懂Nginx,不过这里很简单就能看出来,做反向代理还是很简单的,这样可以节约对外映射的端口数,也更加友好——试想一下别人看到你莫名其妙端口号的表情。(由于我的VPS是配置过PHP的,通过这种方法也能够让PHP和Node程序共用端口——其实是反向代理,非常爽)如果你的Node或者其他程序还在不断的占用你的端口们,请快点用Nginx解脱你的对外端口吧(Apache亦可,不过性能Nginx更好)。 B s#hr3h-  
ah0`KxO]  
4\u1TYR  
配置完成,重启Nginx:/etc/init.d/nginx restart JJ2_hVU  
4UvZ)^r  
0C irfcs}Z  
转载:CodeSky 代码之空 DiwxXqY  
g<f <Ip=  
;=; 9tX  
参考资料 wFsyD3  
mmEYup(l0;  
i}mVQ\j5  
MySQL安装: VE {3}S  
vK\%%H  
n; +LH9  
CentOS yum配置LNMP服务器(Nginx+PHP+MySQL) _'>oXQJ  
C=)A6 ;=se  
* @v)d[z_  
CentOS 编译安装MySQL5.6.17 p~^D\jR.  
J|kR5'?x  
N OiN^::m  
PM2: {/(D$"j(S  
Keep Ghost Running with pm2 q6SXWT'Sa  
?:8ido#-  
y7 3VFb  
其他: E2@65b$  
Ax?y  
. Z.)t  
Ghost部署与安装全教程
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)