个人博客教学(hexo+阿里云服务器ECS)2023

个人博客教学(hexo+阿里云服务器ECS)

之前是用的github生成地址访问的,但是国内访问有时候加载很慢,部署上去都整几次才成功,刚好阿里的云服务器可以个人试用三个月,我就来试试,这个也是结合了别人的文章加上自己踩的坑,给大家避避雷,让大家能一次成功,避免浪费时间!

hexo博客框架教程

1.npm install hexo-cli -g:安装Hexo的全局命令行工具。(这一步我已经安装了就不演示了)

2.hexo init blog:在当前目录下初始化一个新的Hexo博客项目,并命名为"blog"。

执行之后会有个blog文件夹,里面是这样的

3.cd blog:进入刚刚初始化的Hexo博客项目目录。

4.npm install:在博客项目目录中安装所有的依赖包。

5.hexo server:在博客项目目录中启动Hexo的开发服务器,用于开发和预览博客网站

命令可以简化成hexo s,执行完之后会有个http://localhost:4000/的地址,打开是以下画面就成功了

主题替换

进入themes文件夹使用git clone命令来克隆下载

git clone https://gitee.com/yuang01/hexo-theme-bamboo.git 这个是我使用的主题

然后在根目录找到_config.yml文件,在其中找到theme配置项

theme: hexo-theme-bamboo hexo-theme-bamboo是主题名称

替换完之后执行hexo s,主题变下面这样就成功了

主题一些详细的配置可以在hexo-theme-bamboo文件夹下的_config.yml修改

阿里云服务器教程

进入阿里云官网搜索云服务器ECS,往下翻你会看到

选择个人试用,选择如下图所示

申请完之后,来到创建好的实例,如下图所示

点击远程连接,如下图所示

第一次连接不知道密码直接选择重置密码就行

服务器部署教程

git相关配置

1.首先我们要在服务器上安装git

js 复制代码
yum install git

2.中途可能会出现

JS 复制代码
Is this ok [y/d/N]:   //输入y按下回车即可

3.安装完成之后创建git账户

js 复制代码
adduser git

4.添加git账户权限

js 复制代码
chmod 740 /etc/sudoers
vim /etc/sudoers

5.输入之后跳入另一个地方,按i进入编辑状态,找到

js 复制代码
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
git     ALL=(ALL)       ALL  //我们自己添加的

6.在root下面添加git,如上所示,添加完成之后点击Esc键,输入:wq进行保存退出

改回权限

js 复制代码
chmod 400 /etc/sudoers

7.设置git密码

js 复制代码
git config --global user.password "设置的密码"

8.切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

js 复制代码
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

9.按i 进入编辑模式,将我们生成的 id_rsa.pub 文件中的公钥复制到 authorized_keys 中,完成之后就保存退出(上面有提到如何保存退出)

如果没有配置过SSH密钥的按照以下操作

js 复制代码
//配置一下 git 的 username 和 email
$ git config --global user.name "你要设置的名字"
$ git config --global user.email "你要设置的邮箱"
//之后生成SSH密钥
$ ssh-keygen -t rsa -C "你刚刚设置的邮箱"
//设置完成之后会得到两个文件: id_rsa 和 id_rsa.pub

文件一般在c盘/用户/你的用户名/.ssh里面,找到id_rsa.pub文件复制公钥即可

10.接着输入以下命令,赋予权限

JS 复制代码
chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh
//修改文件权限

12.接着在本地测试一下,是否能免密登入git,SERVER是你的云服务器外网ip

js 复制代码
ssh -v git@SERVER

出现下图所示就是成功,还要输入密码就失败了

创建仓库及相关配置

首先我们要切换成root账号,但我碰上个问题无法输入密码,所以我是断开远程连接重新进入的,这时候账号就又恢复成root账号了

1.创建目录

js 复制代码
mkdir /val //创建val目录
mkdir /val/repo  //在 val目录下创建 repo 作为 Git 仓库目录

2.赋予权限

js 复制代码
chmod -R 755 /val/repo

3.创建 hexo 目录作为网站根目录,并赋予权限

js 复制代码
mkdir /val/hexo
chown -R git:git /val/hexo
chmod -R 755 /val/hexo

4.创建一个空白的 git 仓库

JS 复制代码
cd /val/repo
git init --bare hexo.git

5.在 /val/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive ,用于部署输入下面的命令

js 复制代码
vim /val/repo/hexo.git/hooks/post-receive 

6.进入编辑状态,将下面两行代码粘贴进去,然后保存退出

JS 复制代码
#!/bin/bash
git --work-tree=/val/hexo --git-dir=/val/repo/hexo.git checkout -f

7.修改权限

js 复制代码
chown -R git:git /val/repo/hexo.git/hooks/post-receive
chmod +x /val/repo/hexo.git/hooks/post-receive

到这仓库就已经完成了

配置Nginx

这里我用的是宝塔面板来部署

js 复制代码
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

中途输入"y" 回车等待一会就好了。在执行结果最后会出现地址,用户名,密码等

复制外网地址打开,输入刚才出现的用户名和密码

可能会出现进不去的情况。这时候要在服务器实例安全组里配置规则,放行8888端口,如下图所示,配置在入口里面

你登入进去之后注册完成会让你下载5个应用,里面有Nginx,如果你没点击下载就按照下图操作

安装之后,按照下图操作(点击左侧网站菜单,选择PHP项目添加站点,域名输入服务器公网ip,其余不管点击提交)

提交完成之后找到网站设置,点击配置文件(修改server_nameroot这两个地方即可)改完之后点击保存

js 复制代码
server
{
    listen 80;
    server_name 这里填写你的服务器公网ip;
    index index.php index.html index.htm default.phpdefault.htm default.html;
    root /val/hexo/;  //这里root填写自己的网站根目录

在网站设置中点击网站目录,修改成如下图所示

然后回到服务器端,输入一下命令,重启宝塔服务

JS 复制代码
service bt restart

修改hexo配置,进行部署

进入本地 hexo 博客的根目录,编辑站点配置文件 _config.yml,找到 deploy,修改成以下

js 复制代码
//ABC的地方填你服务器的ip
deploy:
  type: git
  repo: git@ABC:/val/repo/hexo.git
  branch: master

然后再项目终端输入下面两天命令进行部署

js 复制代码
hexo clean
hexo d -g

这时候可能出现权限问题,导致部署到 git 失败,这时候在服务器端输入下面两天命令即可

js 复制代码
chown -R git:git /val/repo/
chown -R git:git /val/hexo/

最后在输入hexo d -g进行部署即可

部署完成之后就可以用服务器ip访问了

相关推荐
浮华似水18 分钟前
Javascirpt时区——脱坑指南
前端
王二端茶倒水21 分钟前
大龄程序员兼职跑外卖第五周之亲身感悟
前端·后端·程序员
_oP_i26 分钟前
Web 与 Unity 之间的交互
前端·unity·交互
钢铁小狗侠28 分钟前
前端(1)——快速入门HTML
前端·html
凹凸曼打不赢小怪兽1 小时前
react 受控组件和非受控组件
前端·javascript·react.js
狂奔solar1 小时前
分享个好玩的,在k8s上部署web版macos
前端·macos·kubernetes
qiyi.sky1 小时前
JavaWeb——Web入门(8/9)- Tomcat:基本使用(下载与安装、目录结构介绍、启动与关闭、可能出现的问题及解决方案、总结)
java·前端·笔记·学习·tomcat
清云随笔1 小时前
axios 实现 无感刷新方案
前端
鑫宝Code1 小时前
【React】状态管理之Redux
前端·react.js·前端框架
忠实米线2 小时前
使用pdf-lib.js实现pdf添加自定义水印功能
前端·javascript·pdf