VPS部署Hexo
本地Hexo部分
安装Node.js
- Windows直接下载安装最新版
- Ubuntu16.04安装最新版Nodejs :
https://github.com/nodesource/distributions#rpmcurl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs
安装Git
下载安装最新版安装Hexo
sudo npm install -g hexo
生成本地静态网站
- 进入要创建网页文件夹
hexo init
- 更换主题
cd themes
git clone 需要下载的主题地址
- 配置主题
具体见主题
VPS部分
安装配置Git
创建git用户
adduser git
添加root权限
chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在下面添加一行git ALL=(ALL) ALL
保存退出后改回权限chmod 400 /etc/sudoers
设置Git用户的密码
sudo passwd git
设置Git免密登录
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#将本地执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
执行ssh 测试一下ssh -v git@SERVER_IP
安装Nginx:
- 在线安装:apt-get install nginx
- 源码编译安装:可以安装最新版
nginx -t
nginx配置
自动化部署
建立git裸库
裸仓库就是只保存git信息的Repository
su git
cd ~
git init --bare blog.git
使用Git Hooks同步网页
配置Git Hooks
使用 post-receive钩子,当git有收发的时候就会调用此钩子
在裸库的 hooks文件夹中,新建post-receive文件vim ~/blog.git/hooks/post-receive
#!/bin/sh
GIT_REPO=/home/git/hexo.git # git仓库
TMP_GIT_CLONE=/tmp/hexo
PUBLIC_WWW=/var/www/html/blog # 网站目录
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
保存后,赋予可执行权限chmod +x post-receive
配置_config.yml
打开 _config.yml, 找到 deploy
deploy:
type: git
repo: git@SERVER:/home/git/blog.git //<repository url>
branch: master //这里填写分支 [branch]
message: 提交的信息 //自定义提交信息 (默认为 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }})
测试
hexo g -d
https配置
在Nginx配置文件中添加或修改:
listen 443 ssl default_server;
#监听端口:443
listen [::]:443 ssl default_server;
ssl on;
#开启ssl
ssl_certificate xxx/xxx.pem;
#证书位置
ssl_certificate_key xxx/xxx.key;
#私钥位置
ssl_session_cache shared:SSL:1m;
#SSL session 缓存区大小
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
#密码加密方式
ssl_prefer_server_ciphers on;
#依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
问题:
按照官方配置后local_search无法使用:
文章含有特殊字符
打开开发者工具,转到网络模块
直接访问search.xml,解析错误,
查看返回包(response),找到文件中特殊字符的所在位置
git 换行符LF与CRLF转换问题
Git设置
git config --global core.autocrlf false
git config --global core.safecrlf true
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
#提交时转换为LF,检出时不转换
git config --global core.autocrlf input
#提交检出均不转换
git config --global core.autocrlf false
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论