使用 Hexo 搭建个人博客并部署到云服务器
服务器必须先安装git、hexo、nginx哈
1、服务器创建一个名为git的账户
# 创建git用户 adduser git
# 修改git用户的权限 chmod 740 /etc/sudoers
# 进入 sudo 命令文件 vim /etc/sudoers
|
找到root ALL=(ALL) ALL,在下面添加git ALL=(ALL) ALL

然后给权限
# 修改文件权限 chmod 400 /etc/sudoers
|
设置一下git账号的密码
# 设置 git 用户的密码 sudo passwd git
|
在git账户下
cd ~ git init --bare hexo.git
|
配置钩子文件,注意这里也是git账户下的哈.路径:sudo vim /home/git/hexo.git/hooks/post-receive
#!/bin/bash { echo "[$(date '+%F %T')] Deploy start"
# 强制删除旧文件(确保不会被权限锁死) sudo -u git rm -rf /data/hexo/*
# Checkout 最新文件 git --work-tree=/data/hexo --git-dir=/home/git/hexo.git checkout -f HEAD
echo "[$(date '+%F %T')] Deploy end" } >> /home/git/hexo.git/deploy.log 2>&1
|
给其权限
sudo setfacl -R -m u:git:rwx /data/hexo && sudo setfacl -d -m u:git:rwx /data/hexo
|
这里的/data/hexo就是后面生成文件的地方.
给钩子文件的执行权限
# 给 post-receive 钩子添加可执行权限 chmod +x post-receive
# 可选:查看权限确认 ls -l post-receive # 正确的话应该看到类似 -rwxr-xr-x
|
2、确认hexo博客的配置正确
deploy: type: git repo: git@192.168.10.101:/home/git/hexo.git branch: master
|
然后本地的话执行一下
ssh-copy-id zxzlimitx@192.168.10.101
|
将其公钥复制到本地,避免每次都输入密码
本地推送验证
hexo clean && hexo g && hexo d
|
本地推送的话,远程就能接受到啦,然后对应会在/data/hexo生成相应文件啦.
如果有意外就看看钩子的日志
cat /home/git/hexo.git/deploy.log
|
然后就是nginx静态网站部署啦.
进入sudo vim /etc/nginx/sites-available/default编辑一个新的文件,或者就这个就可以,然后输入
server { listen 8123; listen [::]:8123;
root /data/hexo/public; # 指向生成目录 index index.html;
location / { try_files $uri $uri/ /index.html; } }
|
给其对应权限
sudo chown -R www-data:www-data /data/hexo
|
重启nginx,登陆对应ip+端口即可访问
sudo systemctl restart nginx
|
这次我是迁移到我的本地服务器上面啦,需要先配置waline评论系统,这里就要注意一下
先是hexo当中的waline要改一下配置,在next主题下的config,改一下ip+端口就OK,这个端口是博客服务的端口
waline: enable: true serverURL: https://ip:8360/ pageview: true pageSize: 10 meta: ['nick', 'mail', 'link'] requiredMeta: [] locale: placeholder: 欢迎留言~ emoji: - https://unpkg.com/@waline/emojis@1.1.0/weibo - https://unpkg.com/@waline/emojis@1.1.0/bilibili
|
然后是docker-compose对应改一下
version: '3'
services: waline: container_name: waline image: lizheming/waline:latest restart: always ports: - 8360:8360 volumes: - ${PWD}/data:/app/data environment: #数据库配置 MYSQL_HOST: '192.168.10.213' MYSQL_PORT: '3306' MYSQL_DB: 'waline' MYSQL_USER: 'root' MYSQL_PASSWORD: '121313213' MYSQL_PREFIX: 'wl_' MYSQL_CHARSET: 'utf8mb4' MYSQL_SSL: 'false' TZ: Asia/Shanghai #改一下MySQL连接地址、端口号、数据库、密码就行了,当开启SSL是MYSQL_SSL: 'false'这个要变,其他默认即可
# 站点与权限配置 SITE_URL: 'http://127.0.0.1:8360' SITE_NAME: 'zxzlimitx' SENDER_NAME: 'zxzlimitx' SECURE_DOMAINS: '127.0.0.1,localhost,127.0.0.1:2313' LEVELS: '0,10,20,50,100,200' # 50+ 为管理员权限 #SECURE_DOMAINS最好也把服务器的ip添加进去用英文逗号隔开放后面,域名也要写好 # 新增评论权限配置 ALLOW_ANONYMOUS: 'true' # 允许匿名发布 REVIEW: 'false' # 关闭审核,直接发布 AKISMET_KEY: '' # 关闭反垃圾拦截(避免正常评论被误判)
|
SECURE_DOMAINS必须添加对应ip+端口,否则打不开的
这里具体就参考一下,waline那篇博客好了.