华为云搭建hexo
赶上华为云服务器打折购买
型号为:云耀云服务器 1核 2GB
镜像为EulerOS 2.5 由于Centos停止维护,切源有些程序依然无法下载,使用华为的EulerOS进行搭建,可以减少很多麻烦。
本地客户端
系统:windows10 64位
本地环境搭建:git 、 node.js 、 hexo
-
git安装,百度搜索git,到官网https://git-scm.com/直接下载,下载完成后打开一直下一步就行。
-
node.js安装,百度搜索node.js,到官网https://nodejs.org/en/,选择稳定版本,下载完成后,打开一直下一步就行。
-
hexo安装
百度hexo,找到hexo官网主页https://hexo.io/zh-cn/,按照官网提示操作。
首先在需要安装的目录下,打开git bash here
按照官网提示输入以下命令
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server
然后使用浏览器,输入网址localhost;4000进行访问
- 需要在本地客户端生成SSH key,win+R 输入CMD进入命令行界面。输入命令后直接点击回车在默认文件id_rsa生成ssh秘钥,按照提示输入密码,直接回车表示不需要密码。会在用户下的.ssh目录里生成id_rsa和id_rsa.pub这两个文件。
$ ssh-keygen -t rsa -C"用户邮箱"
服务端
服务端需要安装git、nginx
本文使用的是EulerOS类似Centos使用yum命令
git
- 安装git,搭建一个git服务器,把hexo代码上传到服务器端
yum install git
- 设置git,在服务端添加用户git
adduser git
- 修改权限,在etc目录下找到sudoers文件进行修改,之前需要给sudoers文件修改权限。
chmod 777 /etc/sudoers
vi /etc/sudoers
- 按i进入可编辑模式,在root ALL = (ALL) ALL下加入如下代码,给予git用户所有权限
git ALL = (ALL) ALL
- 键入esc,输入wq退出编辑并保存,然后把权限修改回来
chmod 400 /etc/sudoers
- 切换到git用户,并且新建ssh秘钥和 秘钥文件夹。
sudo git
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
然后将前面本地客户端中生成的id_rsa.pub文件中的公钥复制到authorized_keys,保存退出
- 给ssh秘钥赋予权限
chmod 600 /home/git/.ssh/authorzied_keys
chmod 700 /home/git/.ssh
- 测试git是否能连接到云服务器,如果直接登录进去,说明成功,如果没有,需要输入密码。
ssh -v git@ip地址
- 创建git仓库,并且赋予权限。
mkdir /home/www/blog
chown -R git:git /home/www/blog
chmod -R 755 /home/www/blog
- 创建网站目录,并赋予权限
mkdir /home/www/hexo
chown -R git:git /home/www/hexo
chmod -R 755 /home/www/hexo
- 返回root用户权限,然后创建git仓库,仓库初始化。在初始化之后会生成一个xxx.git的文件目录。
su root
cd /home/www/blog
git init --bare hexo.git
- 创建一个钩子文件,使git上传的代码自动部署到文件当中,在hexo.git文件目录下,找到hooks文件夹。我们需要在里边新建一个新的钩子文件 post-receive
vi post-receive
在文件中输入,保存并退出。
#!/bin/bash
git --work-tree=/home/www/hexo --git-dir=/home/www/blog/hexo.git checkout -f
- 修改权限使其可执行
chown -R git:git /home/www/blog/hexo.git/hooks/post-receive
chmod +x /home/www/blog/hexo.git/hooks/post-receive
服务端nginx
- 安装nginx
https://blog.youkuaiyun.com/qq_35979787/article/details/125821536?spm=1001.2014.3001.5501
- 配置nginx进入nginx的配置文件
vi /usr/local/nginx/conf/nginx.conf
把位置指向hexo文件目录,修改nginx.conf里面的server
server {
listen 80;
server_name 域名/IP;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /home/www/blog;
index index.html index.htm;
}
- 启动nginx
cd /usr/local/nginx/sbin
./nginx
hexo测试
- 在本地客户端,运行git bash here,把hexo打包上传
hexo clean
hexo g
hexo d
2 . 上传完成,在本地服务端配置的ip地址或者域名,完成访问
注意事项
- 各文件都要赋予相应地权限,否则出现nginx无法访问403的错误,或者git无法上传文件
- 域名要实名注册备案完成才能使用
- hexo详情访问官网:https://hexo.io/zh-cn/