阅读 144

服务器搭建静态博客

服务器搭建静态博客

在服务器上搭建静态博客


背景

之前在服务器上搭建了基于Halo的动态博客系统,可以通过网页后台,方便进行博客写作和管理。但苦于资金有限,服务器性能一般,服务器除了要处理访问,还要挂着守护进程。于是就希望能有适于低性能服务器的解决方案。

同时,自己一直通过GithubPage托管一部分博客,一直没能统一部署,所以希望能够寻求到能够同时部署到服务器和github.io的方案。

这几天发现一个关于此的专栏(见文末引用),于是跟着步骤做了一遍。所以此篇为备忘。

停用Halo

先ssh连接到服务器,停用Halo的守护进程

systemctl disable halo
systemctl stop halo

配置静态资源

首先将已经托管在GithubPage的仓库克隆到nginx的默认静态资源目录/var/www/html

cd /var/www/html
git clone xxxxx

修改nginx的配置文件,将刚刚克隆的资源目录添加为root字段的值

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html/xxx.github.io;

测试静态资源

在浏览器输入服务器的ip和端口号(一般为80,就是nginx配置文件中的)

xxx.xxx.xxx.xxx:80

如果成功加载网页,就说明之前的配置成功。

但现在无法使用之前的配置进行域名访问。只需要将之前在/etc/nginx/config.d/下的配置文件(这是Ubuntu的nginx目录,红帽系的可能有所不同)里有root字段的目录也改为和上文nginx配置文件里的一样的就好。(Halo原来的配置为通过代理监听Halo的端口。)

至此,已经可以通过域名访问从github克隆到服务器的静态资源了。

配置同时部署

如果想将本地机里的静态资源同时部署到github和服务器的话,就需要在服务器也创建一个git仓库,并在本地机里将hexo根目录下配置文件里的deploy项进行修改。

创建仓库

首先创建一个git用户,用m选项添加家目录,并将其加入root用户组

useradd git -m -G root

进入git的家目录并创建裸仓库hexo.git,并将仓库所有者和组权限进行修改

cd /home/git/
git init --bare hexo.git
chown -R git:git hexo.git

cd /var/www/html/
chown -R git:git xxx.github.io

配置仓库储存位置,在配置文件 /home/git/hexo.git/hooks/post-receive中写入如下内容:

#!/bin/shgit --work-tree=/var/www/html/xxx.github.io --git-dir=/home/git/hexo.git checkout -f

保存之后,为该文件添加可执行权限

chmod +x post-receive

这样,一会儿部署的静态资源就会储存到nginx的默认静态资源目录(见前文)。

除此,为了在部署时免除密码,需要将本地机的ssh公钥导入git家目录下的~/.ssh/authorized_keys文件中。(如果在root或默认目录下有,也可以复制一份)。

配置本地机部署

编辑本地机的Hexo根目录下的配置文件(_config.yml),修改deploy的内容:

# Deployment## Docs: https://hexo.io/docs/one-command-deploymentdeploy: 
  type: git
  repo: 
        github: git@github.com:your_github_name/your_github_name.github.io.git,main
        hexo: git@your_server_ip:/home/git/hexo.git,master
至此,使用hexo d就可以同时部署到GithubPage和自己的服务器上了!

References:

https://zhuanlan.zhihu.com/p/58654392


__EOF__


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐