012-使用轻量服务器部署博客(转载)
原文地址: https://blog.gmcj0816.top/posts/47c1249e/
一. 前言
其实将博客放到自己服务器上是半好半坏的
好处:
1.不用担心别的静态部署平台有什么变化,包括唧唧了,或者涨价了;
2.自己的其他东西也可以放到自己的服务器,比如自己开发的联机游戏;
3.没事自己捣鼓捣鼓,对个人的技术成长和作品展示都是有好处的,也是非常有意思的事情
坏处:
1.国内需要ICP备案和公安备案【香港澳门等除外】;
2.可能需要一些技术能力,比如反向代理,linux知识;
腾讯云
马上年底了,腾讯云也推出了一些优惠活动,这个基本上新老用户都有比较合适的,而且腾讯云肯定在这方面做的比较好的了,而且你后面的ICP备案,腾讯这边是有幕布的
百度智能云
百度智能云虽然是后来才有的,但是无论是服务态度上还是稳定性上都挺不错的【本博主的就在这】
这一家也是可以的,最最最重要的是这家服务器不用备案,相关手续和证件比较全面,跑路的可能较低,价格方面也是可以的
二. 服务器配置
2.1 安装常用工具
这里主要的含义就不过多说了,基本都是常用到的
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel |
2.2 安装git
这一步可能有的在实例的时候就安装了git,大家如果不能保证自己的服务器是否安装了git,可以通过git - -version
git --version |
没有的话,安装命令如下
yum install -y git |
2.3 创建指定的上传用户名和密码
创建后上传hexo的git指定用户,这里以codertoro为例(这个用户名可以自定义,但是要保证后面的需要用户名的地方需要改成自己自定义的用户名即可)
useradd codertoro |
需要注意的便是在设置密码时,一般玩过虚拟机的都知道,主要是没玩过的,要注意设置密码时是没有回显的
2.4 编辑权限文件
赋予coderotro用户相关权限
需要注意,//后面的别复制,内个是给大家做的解释
chmod 740 /etc/sudoers # 设置权限 |
使用 :set nu 显示行号,找到100行左右,添加如下信息
root ALL=(ALL) ALL |
直接:wq!
,进行保存,保存后再次修改权限。因为 sudoers
是只读文件,所有要使用 !
进行保存,否则会失败。
将/etc/sudoers 修改成只读类型【为了保证服务器的安全,这个一定要做,千万不要懒哦】
chmod 600 /etc/sudoers |
2.5 创建hexo文件夹及赋予文件夹权限
需要注意,//后面的别复制,内个是给大家做的解释
#这个也是自定义的 |
2.6 安装Nginx
这里基本没啥好说的,直接运行就可以,然后看到最后一行显示Complete就说明完事了
yum install -y nginx |
这个时候我们可以通过以下命令,启动一下,看看效果,如果没有报错的话就说明启动完事了
systemctl start nginx.service |
2.7 编辑Nginx文件
vim /etc/nginx/nginx.conf |
如果后面用https,直接复制我这套就ok了
server{ |
保存退出后,重启服务器,
修改完配置以后,需要重启一下Nginx服务。
注:这配置正确的话输入完这句话没有任何输出和提示,有提示很有可能配置错误,比如证书文
件没上传,证书文件名错误等
systemctl reload nginx.service |
2.8 建立git仓库
需要注意,//后面的别复制
su root //如果现在就是root用户下可以不用这一句 |
2.9 编辑post-receive
进入如下目录
cd /home/codertoro/blog.git/hooks/ |
需要注意,//后面的别复制
vim post-receive //这一句话千万别错了哦 |
把下面的内容拷贝进去并wq!保存,特别注意修改路径
|
再次修改权限
chmod +x post-receive |
开启防火墙
systemctl start firewalld.service |
开放80端口,如果https需要开放443端口
firewall-cmd --permanent --zone=public --add-port=80/tcp |
到这基本的工作已经完事了
三. 本地安装和配置Hexo(本文重点不在这里)
这里需要git和node,这个教程就比较多了,在这里就不进行赘述了
3.1 安装Hexo
这篇文章先以最基本的hexo为准,后面会给大家更新如何魔改
npm install -g hexo-cli |
3.2 初始化hexo
这里myblog可以去掉,加myblog只不过是为了使所生成的文件全都放到myblog文件夹中
hexo init myblog |
npm install |
目前基本的hexo已经ok了,本地运行一下看看
hexo s |
在浏览器中输入:http://localhost:4000/ 即可查看
3.3 上传到服务器
su //登录你用来上传博客的用户 |
这里需要一个秘钥,在你的物理机上C:UsersAdministrator .ssh(mac在~/.ssh文件夹中)的文件中找到id_rsa
文件
复制到你的服务器中
测试物理机与服务器能否跑通
ssh -v codertoro@codertoro.top |
报错提醒:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
解决方法:
vi ~/.ssh/known_hosts
删除对应IP下的内容
我们需要在config.yml中的最后一行编辑以下信息,然后咱们就可以把自己的博客推送上去了
deploy: |
然后就可以通过以下命令进行推送了
hexo clean && hexo g && hexo -d |