前言

其实将博客放到自己服务器上是半好半坏的

好处:
1.不用担心别的静态部署平台有什么变化,包括唧唧了,或者涨价了;
2.自己的其他东西也可以放到自己的服务器,比如自己开发的联机游戏;
3.没事自己捣鼓捣鼓,对个人的技术成长和作品展示都是有好处的,也是非常有意思的事情
坏处:
1.国内需要ICP备案和公安备案【香港澳门等除外】;
2.可能需要一些技术能力,比如反向代理,linux知识;
  • 腾讯云

马上年底了,腾讯云也推出了一些优惠活动,这个基本上新老用户都有比较合适的,而且腾讯云肯定在这方面做的比较好的了,而且你后面的ICP备案,腾讯这边是有幕布的

  • 百度智能云

百度智能云虽然是后来才有的,但是无论是服务态度上还是稳定性上都挺不错的【本博主的就在这】

这一家也是可以的,最最最重要的是这家服务器不用备案,相关手续和证件比较全面,跑路的可能较低,价格方面也是可以的

服务器配置

安装常用工具

这里主要的含义就不过多说了,基本都是常用到的

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

安装git

这一步可能有的在实例的时候就安装了git,大家如果不能保证自己的服务器是否安装了git,可以通过git - -version,如果能够显示以下信息就不用再重复安装了

image-20221219101559932.png (992×65) (gmcj0816.top)

yum install -y git

可以用git - -version查看git是否安装成功,看到以下信息说明安装完成咯

image-20221219101559932

创建指定的上传用户名和密码

创建后期上传hexo的git指定用户,这里以hyh为例(这个用户名可以自定义,但是要保证后面的需要用户名的地方需要改成自己自定义的用户名即可)

useradd hyh
passwd hyh

需要注意的便是在设置密码时,一般玩过虚拟机的都知道,主要是没玩过的,要注意设置密码时是没有回显的

image-20221219101655382

编辑权限文件

赋予hyh用户相关权限

需要注意,//后面的别复制,内个是给大家做的解释
chmod 740 /etc/sudoers   # 设置权限
vim /etc/sudoers # 编辑/etc/sudoers

使用 set: nu 显示行号,找到100行左右,添加如下信息

root ALL=(ALL)  ALL
- hyh  ALL=(ALL)   ALL  #主要添加这句话(这里hyh是你刚才创建的用户名)

image-20221219102042402

直接:wq!,进行保存,保存后再次修改权限。因为 sudoers是只读文件,所有要使用 !进行保存,否则会失败。

将/etc/sudoers 修改成只读类型【为了保证服务器的安全,这个一定要做,千万不要懒哦】

chmod 600 /etc/sudoers   //改回权限

创建hexo文件夹及赋予文件夹权限

需要注意,//后面的别复制,内个是给大家做的解释
mkdir /home/hexo  #这个也是自定义的
chown hyh:hyh -R /home/hexo //授予权限

安装Nginx

这里基本没啥好说的,直接运行就可以,然后看到最后一行显示Complete就说明完事了

yum install -y nginx  

image-20221219102251439

这个时候我们可以通过以下命令,启动一下,看看效果,如果没有报错的话就说明启动完事了

systemctl start nginx.service

编辑Nginx文件

vim /etc/nginx/nginx.conf

image-20221219103606818

如果后面用https,直接复制我这套就ok了

server{
        listen 80;
        server_name ceshi123.top;
        rewrite ^(.*)$  https://$host$1 permanent;  # http转https
    }
    server{
        listen 443 ssl;
        root /home/hexo;
        server_name ceshi123.top;  # 请替换为你的域名
        client_max_body_size 40m;  # 请求体上限
        # ssl的一些配置
        ssl_certificate "/home/ssl/hexo_ssl/ceshi123.top.crt";   # 请务必替换成你的ssl证书路径
        ssl_certificate_key "/home/ssl/hexo_ssl/ceshi123.top.key"; # 请务必替换成你的ssl证书路径
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
    
        error_page   404    /404.html;
        error_page   500 502 503 504     /50x.html;
    }

保存退出后,重启服务器,
修改完配置以后,需要重启一下Nginx服务。

systemctl reload nginx.service  

建立git仓库

需要注意,//后面的别复制
su root   //如果现在就是root用户下可以不用这一句
cd /home/hyh
git init --bare blog.git  //创建Git仓库
chown hyh:hyh -R blog.git  //授予Git仓库权限

编辑post-receive

进入cd /home/hexo/blog.git/hooks/执行下方命令

需要注意,//后面的别复制
vim post-receive   //这一句话千万别错了哦

把下面的内容拷贝进去并wq!保存

#!/bin/sh
git --work-tree=/home/hexo  --git-dir=/home/hyh/blog.git checkout -f

再次修改权限

chmod +x post-receive

开放80端口,如果https需要开放443端口

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload

到这基本的工作已经完事了

本地安装和配置Hexo

这里需要git和node,这个教程就比较多了,在这里就不进行赘述了

安装Hexo

这篇文章先以最基本的hexo为准,后面会给大家更新如何魔改

npm install -g hexo-cli

初始化hexo

这里myblog可以去掉,加myblog只不过是为了使所生成的文件全都放到myblog文件夹中

hexo init myblog  
cd ./myblog

image-20221219104442542

npm install
npm install hexo-server --save
npm install --save hexo-deployer-git

目前基本的hexo已经ok了,本地运行一下看看

hexo s

在浏览器中输入:http://localhost:4000/即可查看

本地运行效果

上传到服务器

su hyh  //登录你用来上传博客的用户
mkdir ~/.ssh   //创建存放密钥的文件夹
vim ~/.ssh/authorized_keys  //写入密钥

这里需要一个秘钥,在你的物理机上C:\Users\Administrator\ .ssh的文件中找到id_rsa文件

image-20221219104916864

复制到你的服务器中

image-20221219105146530

测试物理机与服务器能否跑通

ssh -v hyh@121.41.11.145 //服务器ip

image-20221219105415482

我们需要在config.yml中的最后一行编辑以下信息,然后咱们就可以把自己的博客推送上去了

deploy:
  - type: git
    repository: hyh@121.41.11.145:/home/hyh/blog.git
    branch: master

image-20221219135835553

然后就可以通过以下命令进行推送了

hexo clean && hexo g && hexo -d

最好呢,这篇文章就基本上说完了,大家对于这篇文章有什么不懂的呢,可以在评论处评论,到时候看到会进行回复的