hexo部署到服务器以及twikoo私有部署
本人对服务器部署相关内容确实不太熟悉,主要是代码太多了,好了语句似懂非懂的,有必要记录一下,主要针对hexo部署到腾讯云轻量应用服务器和用docker安装twikoo评论系统。事先声明,此文章大部分取自yyyzyyyz的关于twikoo私有部署的文章,本人承诺,本文不做商业用途,只作为记录之用。
准备工作
在开始部署之前,你需要做如下准备:
- 本地搭建完成的博客
- 一台windows/mac电脑(如果你的电脑是linux应该不用看本篇教程吧)
- 一台云服务器(理论上来说任何服务商都可以,本教程以腾讯云为例)
- 本地电脑安装一个ssh连接工具(或者bash终端)HOSTBUF
- 可能会多次失败也不怕重来的决心:
安装配置git
安装依赖工具包
1 | yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel |
安装编译工具
1 | yum install -y gcc perl-ExtUtils-MakeMaker package |
删除旧版本git
1 | yum remove git -y |
进入根目录
1 | cd |
下载git到根目录
鉴于下载地址的时效性,附上官网地址,后续git更新请去官网下载安装包。
1 | wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-check-certificate |
如果提示没有wget命令,先安装:
1 | yum install wget -y |
解压文件
1 | tar -zxf git-2.34.0.tar.gz |
安装git
进入到git目录下
1 | cd git-2.34.0 |
编译
1 | make all prefix=/usr/local/git |
安装git到/usr/local/git
下
1 | make install prefix=/usr/local/git |
配置git环境变量
将git加入PATH
目录中
1 | echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc |
使配置生效
1 | source /etc/bashrc |
查看git版本
1 | git --version |
如果能查看到git的版本号,说明安装成功。
创建用户并配置SSH免密登录
创建用户并设置密码
这里的username
改成你自己的用户名,并且为用户设置一个密码。
1 | adduser [username] |
为用户分配权限
把用户添加到wheel组
1 | usermod [username] -G wheel |
本地创建密钥
在本机电脑终端输入:
1 | ssh-keygen -t rsa |
然后一直回车,新建一个密钥。
一般来说在你创建的时候命令行会提示你密钥文件的路径,windows电脑一般是C:\Users\Administrator\.ssh
复制id_rsa.pub
文件中的内容备用。
配置公钥(免密部署用)
回到服务器终端,切换用户
1 | su - [username] |
创建.ssh
文件夹
1 | mkdir .ssh |
新建authorized_keys
1 | vim .ssh/authorized_keys |
如果提示没有vim,则先安装:
1 | sudo yum install -y vim |
将刚刚id_rsa.pub
公钥中的内容,复制粘贴到文件里,保存退出。
免密失效打开此处
排查方法
检查 | 操作示例 | 说明 |
---|---|---|
.ssh 目录的属主、属组是否为要登陆的用户与用户组 | ll -a /home/[username]/ | username为用户名,下同 |
.ssh 目录的权限是否为 700 | ll -a /home/[username]/ | |
.ssh 目录下authorized_keys 的权限是否为644 | ll -a /home/[username]/.ssh/ | |
[username] 目录的权限是否为755 | ll -a /home/ | 700也可以,确保其他人没有w权限 |
- 检查
.ssh
目录权限:drwx------
- 检查
authorized_keys
权限:-rw-r--r--
- 检查
[username]
目录权限:drwx------
git仓库配置
退出用户登录
1 | exit |
此时应该是root用户,创建git目录,并修改目录的所有权和用户权限
1 | mkdir /home/git/ |
进入目录,建立git仓库,修改权限
1 | cd /home/git/ |
新建钩子文件 post-receive
1 | vim /home/git/blog.git/hooks/post-receive |
进入文本编辑器,粘贴下面两行。
1 |
|
保存退出。然后修改文件权限
1 | chmod +x /home/git/blog.git/hooks/post-receive |
nginx配置
创建网站目录
首先创建blog
目录用户nginx转发
1 | mkdir /home/blog/ |
网站配置
此处我们用到宝塔面板。
安装宝塔
- 执行以下命令,下载并安装宝塔面板。
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
返回如下结果,表示安装成功。
1 | Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service. |
- 记录返回结果中的 “面板地址”、“username” 和 “password” 的参数值。
1 | ================================================================== |
- 在本地计算机中,打开浏览器,输入记录的“面板地址”参数值,访问进入宝塔面板页面。例如
http://114.xxx.xxx.188:8888/57ffcc15
。 - 输入记录的 “username” 和 “password”,单击登录。
- 勾选我已同意“《用户协议》”,单击进入面板。
- 根据实际的业务需求,在面板中选择相关的套件安装和部署网站。
设置网站
根目录
:就是我们存放网站的目录
在hexo站点配置文件中配置
回到本地,打开你本地的hexo博客所在文件,打开站点配置文件_config.yml
1 | deploy: |
在本地hexo博客根目录下,打开终端,部署
1 | hexo clean |
错误
- 如果提示
ERROR Deployer not found:git
错误,先安装:
1 | npm install hexo-deployer-git --save |
打开浏览器输入你的服务器公网ip,应该已经部署成功了。
- 若是出现一下错误
需要给我们常见的组赋权,则需执行一下命令:
1 | chown [user]:[user] blog.git |
附:nginx常用命令
1 | # 停止开机自启动 |
twikoo评论系统部署
我采用的方式是:私有部署 (Docker)
我用的是宝塔面板安装的,简单又方便,点击左侧栏docker,会自动让你安装docker环境。
安装docker
开始部署
1 | docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo |
部署完毕后访问器公网IP:8080,例如:http://100.100.100.100:8080
,查看是否部署成功。
成功提示信息:
1 | {"code":100,"message":"Twikoo 云函数运行正常,请参考 https://twikoo.js.org/quick-start.html#%E5%89%8D%E7%AB%AF%E9%83%A8%E7%BD%B2 完成前端的配置","version":"1.6.4"} |
主题配置envid
Butterfly中我们更改配置文件,将themes/butterfly/_config.yml
中:
1 | # Twikoo |
envId
中填写服务器公网IP:8080,例如:http://100.100.100.100:8080
也可以在宝塔面板中添加域名,再设置反向代理
添加名称、设置链接,填写http://127.0.0.1:8080
- 感谢您的赞赏。