Hexo系列教程
使用Centos7+Nginx+Hexo+GitLab+butterfly主题搭建个人博客并自动部署-配置篇
CentOS7下安装GitLab
新建tsinghua.repo
'vim /etc/yum.repos.d/tsinghua.repo'
|
输入以下内容
'[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1'
|
缓存相关内容
安装依赖
'yum install -y curl policycoreutils-python openssh-server'
|
安装gitlab-ce
'yum install -y gitlab-ce'
|
出现如下画面证明安装成功

配置Gitlab
打开gitlab配置文件
'vim /etc/gitlab/gitlab.rb'
|
修改如下内容
'# 改域名,修改成自己的域名,如果用的https,改成https://gitlab.xxxxxx.com external_url 'http://gitlab.suyuening.com' # CPU使用核数,默认好像是24核,用不了那么多,改成2 unicorn['worker_processes'] = 2 # 时域 gitlab_rails['time_zone'] = 'Asia/Shanghai''
|
修改完后,执行下面命令,使配置重新加载
CentOS7下安装Git
yum命令安装:
'sudo yum install -y git'
|
源码安装
安装前要手动安装下依赖包(可使用rpm -qa | grep wget命令查看是否有安装包)
'sudo yum install -y wget sudo yum install -y gcc-c++ sudo yum install -y zlib-devel perl-ExtUtils-MakeMaker'
|
去官网下载最新版本的git源码包
'wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz'
|
接下来就是解压,配置,安装
'tar -zxvf git-2.9.0.tar.gz cd git-2.9.0 ./configure --prefix=/usr/local make sudo make install'
|
./configure后面的–prefix=/usr/local,指定安装路径为usr/local
查看git版本
Git使用
配置一个用于提交代码的用户
'git config --global user.name "Your Name"'
|
同时配置一个用户的邮箱
'git config --global user.email "email@example.com"'
|
生成公钥和私钥(用于gitlab)
'ssh-keygen -t rsa -C "youremail@example.com"'
|
和gitlab通信,将步骤3中生成的公钥(id_rsa.pub文件中的内容)拷贝到github

安装并配置Nginx
安装Nginx
'yum install nginx -y'
'nginx -v'
'nginx'
|
本地浏览器输入”阿里云公网IP”即可访问到下图的界面

配置Nginx服务
'find / -name "nginx.conf" -type f | grep "nginx.conf"'
'mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf_back'
'vim /etc/nginx/nginx.conf'
|
# ---------------* 复制内容开始 *--------------- user nginx worker_processes auto error_log /var/log/nginx/error.log pid /run/nginx.pid events { worker_connections 1024 } http{ server { listen 80 default_server location / { proxy_set_header X-Real-IP $remote_addr proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for proxy_set_header Host $http_host proxy_set_header X-Nginx-Proxy true proxy_set_header Connection '' proxy_pass http://localhost:4000/ proxy_redirect default } } }
# ---------------* 复制内容结束 *---------------
|
保存内容并重启Nginx
安装和配置Node.js
安装Node.js
'yum install nodejs'
'node -v'
|
将Node.js加入环境变量
'type node'
'vi ~/.bash_profile'
'export NODE_PATH='/etc/nvm/versions/node/v12.2.0''
|
在PATH=的后面追加'$NODE_PATH/bin:'
输入完毕后,按下键盘的”ESC”,然后输入”:wq”保存文件
Hexo配置
Hexo不了解的可以先去官网看一看
配置hexo后台运行 安装pm2
'npm install -g pm2'
'pm2 -v'
'cd /var/blog'
'vi hexo.js'
|
// ---------------* 复制内容开始 *--------------- var spawn = require('child_process').spawn; free = spawn('hexo', ['server', '-p 4000']);/* 其实就是等于执行hexo server -p 4000*/ free.stdout.on('data', function (data) { console.log('standard output:\n' + data); }); free.stderr.on('data', function (data) { console.log('standard error output:\n' + data); }); free.on('exit', function (code, signal) { console.log('child process eixt ,exit:' + code); }); // ---------------* 复制内容结束 *---------------
|
使用pm2启动hexo
':wq'
'pm2 start hexo.js'
'pm2 list'
|
成功启动hexo后如下图所示

本地浏览器输入'公网Ip地址' 就可以访问到自己的博客了
配置ssl证书实现https
vim /etc/nginx/nginx.conf 1. 把原来的server全部打上注解 2. # PC端https配置 server{ # 监听443端口 listen 443 ssl; server_name javahna.com; # 证书上传更换路径 ssl_certificate /etc/nginx/ssl/5805665_www.javahna.com.pem; ssl_certificate_key /etc/nginx/ssl/5805665_www.javahna.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; location /api { root /usr/share/nginx/html; index index.html index.htm; } location / { rewrite ^.+api/?(.*)$ /$1 break; include uwsgi_params; # 实际后台服务器地址,此地址就是http的,可以实现https转发http(因为前端后台部署在同一台服务器) proxy_pass http: proxy_set_header Cookie $http_cookie; proxy_set_header Host $host:$server_port; proxy_set_header Remote_Addr $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000m; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server{ # 监听80端口:将80端口的请求转到443 listen 80; server_name www.javahna.com; rewrite ^/(.*)$ https: }
|
启动、重启nginx
#配置生效 nginx -s reload # 启动 systemctl start nginx # 重启 systemctl restart nginx # 停止 systemctl stop nginx # 开机默认启动 systemctl enable nginx
|