阿里云
阿里云大学认证0元起
发表主题 回复主题
  • 139阅读
  • 0回复

[环境部署]云服务器搭建hexo博客,git hooks自动更新

级别: 论坛版主
发帖
370
云币
634

k'ZUBTRq!  
预览目录 \YlF>{LVe  
q]N?@l]  
VqClM  
配置服务 D,dHP-v  
1.安装nginx 3cCK"kr  
2.安装node.js UROj9CO v  
3.安装git ^s2m\Q(  
本地配置 k~1j/VHv  
因为己喜欢瞎拍一些东西,希望弄个博客记录记录,原以为就在eiblog的基础上添加相册栏目,自定义一些东西,但自己的前端知识几乎为0,行动起来,需要点时间。看到hexo上有很多适合的主题,决定用hexo搭建一个,通过git hooks就可线下推送,线上自动拉取部署。 sArje(5Eo  
%|*nmIPq(  
UEEBWzH  
其原理是:通过本地渲染静态文件,将文件推送到GitHub仓库,在服务器上再通过git-hooks同步网站根目录。这样就完成了线下一次操作,线上自动更新的步骤。 ^)OZ`u8  
# 5y9L  
[Y22Wi  
废话不多说,看操作。 %Ui{=920  
~IlF*Zz#}6  
BEXQTM3])I  
配置云服务 ,G[r+4|h  
在配置云服务器前,你得首先本地搭建好你的hexo博客,并可以通过hexo d部署到GitHub。 jcEs10y  
E[jXUOu-  
-}Cc"qm  
其步骤很多博客都有详细的描叙,不做累述。 ).NcLJw_  
Vl{~@G,@  
-XBKOybHBO  
1.安装nginx y Y>-MoF/t  
在屈屈的博客中很多关于Nginx的按照,配置,你可以看看。 `E} p77  
Pqy-gWOv  
5c: '>  
安装完成后你可以在配置中单独指定一个配置,或直接修改原配置指向你准备存放静态文件的文件夹。我用的前者。在nginx.conf文件添加指定配置文件路径, 8%o~4u3  
Hva2j<h  
8pYyG |\  
include            /data/hexo/nginx/cong.d/*.conf; [ 8F \;  
在/data/hexo/nginx/cong.d/ 下添加配置文件razeencheng.com.conf VLcyPM@"Q!  
!}>eo2$r^  
!uWxRpT,7  
NGINX CN.6E<9'kK  
server { wVgi+P  
    listen                       443; aGPqh,<QD  
O.*jR`l  
8#+`9GI  
    server_name                  razeencheng.com; Ln ~4mN^  
    server_tokens                off; CE~r4  
R{*_1cyW  
OuB2 x=B  
    access_log                   /data/hexo/nginx/logdata/nginx.log; (E!%v`_0  
6#<Ir @z  
/^w"' '  
    # ip 黑名单 mT96 ]V \  
    include                      /data/hexo/nginx/ip.blacklist; y0,Ft/D  
o g_Ri$x8  
y k?SD1hj  
    ssl_ct                       on; YMi/uy  
z~F37]W3[  
j*XjY[  
    # 中间证书 + 根证书 x'@W=P 7   
    ssl_trusted_certificate      /data/hexo/nginx/ssl/razeencheng.com.pem; ZQ|5W6c  
(FuEd11R  
>GgE,h  
    ssl_certificate              /data/hexo/nginx/ssl/razeencheng.com.pem; jQ6Xr&}  
    ssl_certificate_key          /data/hexo/nginx/ssl/razeencheng.com.key; T-^0:@5o9  
    ssl_ct_static_scts           /data/hexo/nginx/ssl/scts/ecc/; vyE{WkZxR  
 q$F)!&  
L/~D<V  
    ssl_dhparam                  /data/hexo/nginx/ssl/dhparams.pem; i&JpM] N  
nh<Z1tMU  
byafb+x  
    ssl_ciphers                  EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; 6;gLwOeOHY  
    ssl_prefer_server_ciphers    on; VrVDm*AGQ  
    ssl_protocols                TLSv1 TLSv1.1 TLSv1.2; E$ {J  
    ssl_session_cache            shared:SSL:50m; avg4K*vv  
    ssl_session_timeout          1d; I`NUurQTX  
    ssl_session_tickets          on; d,UCH  
sdrWOq  
m~;B:LN<  
    # ssl stapling ZNi +Aw$u  
    ssl_stapling                 on; 6(Vhtr2( *  
    ssl_stapling_verify          on; e gI&epN  
    resolver                     114.114.114.114 8.8.8.8 valid=300s; B[CA 5Ry  
    resolver_timeout             10s; G{+2x N a(  
#ra*f~G  
:> SLQ[1  
    if ($request_method !~ ^(GET|HEAD|POST|OPTIONS)$ ) { 0'`S,  
        return                   444; yPoSJzC=[  
    } ~ ltg  
~g7m3  
z6I%wh  
    location / { FIS "Z(  
        root /data/hexo/nginx/html; TdFT];:  
        index index.html; e\D| o?v  
    } -%,"iaO  
} t+O e)Ns  
从配置文件也可看出,我将网站的根目录放在/data/hexo/nginx/html文件夹。 aBxiK[[`  
f}iU& 3S  
m'bi\1Q  
2.安装node.js :b@igZ<  
$ yum install nodejs -y H:Y&OZ  
3.安装git 6]n/+[ ks  
$ yum install git -y 8Q=ZH=SQK  
新建git用户,添加权限。 6e.[,-eU  
f@d9Hqr+l;  
2.nE k  
BASH 8{ gXToK  
## 新建git用户  q=4Bny0  
$ adduser git "%@v++4y  
$ chmod 740 /etc/sudoers RV;!05^<  
$ vim /etc/sudoers G\kpUdj}  
p0VUh!  
3{ "O,h  
## 添加下面一行设置git权限 ~=cmM  
git   ALL=(ALL)     ALL hqDqt"dKz  
4TZ cc|B5  
>{nH v)  
$ chmod 440 /etc/sudoers e.8$ga{  
之后我们初始化一个Git的裸仓库,它只是为共享而存在,不需要工作区。 y vI<4F  
g) 1X&>  
h/m6)m.D  
BASH |8U;m:AS  
$ su git o35fifM`  
$ cd /data/hexo JvL{| KtyU  
$ git init --bare hexo.git pj8azFZ  
如果你之前你有设置过ssh登陆,可以测试一下是否测试成功。 L l}yJ#3,  
6R4<J% $P  
GLUUY0  
$ ssh git@ip(or domain) :_HF j.JW  
如果能登录的话就设置OK了。 uM S*(L_  
r,NgG!zq<  
q>s`uFRg(  
如果没有设置,可看ssh免密登陆,设置成功及OK。 Apfnx7Fv  
orfp>B) 0  
AK@L32-S  
为git用户添加ssh key ;rR/5d1!  
SSA W52xC  
<+tD z(  
BASH @PSLs *  
$ su git g0&\l}&%U  
$ cd ~ 5v _P Oq  
$ mkdir .ssh caq} &A]C  
# 然后将你电脑上的公钥复制到authorized_keys,保存。 6Q Zp@  
$ vim /home/git/.ssh/authorized_keys ^%<pJMgdF  
$ chmod 600 .ssh/authorized_keys =RKSag&  
$ chmod 700 .ssh/ `u_Qa  
赋予git对网站目录的所有权。 .*5Z"Q['G  
<02m%rhuW  
zP)~a  
$ chown git:git -R /data/hexo/nginx/html ))T>jh   
配置git hooks。 z5 m>H;P  
#&8rcu;/  
)!W45"l-3M  
$ cd ~/data/hexo/hexo.git/hooks Xm!-~n@-m7  
编辑post-receive文件, 输入如下内容保存退出。 v"O5u%P  
T.:+3:8|F  
e %O0hE  
BASH A\sI<WrH  
# !/bin/bash q1{H~VSn"  
rm -rf /tmp/hexo E6MA?Ax&=  
git clone /data/hexo/hexo.git L 3XB"A#  
rm -rf /data/hexo/nginx/html nE W31 8  
cp -rf /tmp/hexo/* /data/hexo/nginx/html tkKJh !Q7  
然后赋予脚本执行权限。 qUJ aeQ  
F"jt&9jg  
[2c{k  
$ chmod +x post-receive }IaA7f  
之后重启nginx就可以了。 Yl^mAS[w&  
R9o-`Wz  
ml!5:r>  
本地配置 j}JZ  
修改_config.yml的deploy内容,例如: YwDt.6(+,  
K7)kS  
^TdZ*($5  
YAML {]N3f[w  
deploy: zTm]AG|0  
  type: git o>]`ac0b}Y  
  repository: blogit:/data/hexo/hexo.git b1?xeG#  
  branch: master \IM4Z|NN"  
.ssh/config这么配置的。 8At<Wic  
?h8{xa5b  
\,G#<>S  
SSH Sm{>rR  
Host blogit /F/;G*n  
    HostName 120.78.181.210 $iw%(H  
    User git ~l E _L1-c  
    IdentityFile ~/.ssh/blog.pem VR? ^HA9  
以后正常的hexo d既可以一键部署。 _.)eL3OF  
oYM3Rgxf9Q  
<yUstz,Xu^  
转载:RAZEEN 博客
本人不是云栖社区工作人员。
无论您在使用中遇到什么问题,不要出言不逊!谢谢合作!
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 39 - 9 = ?
上一个 下一个