ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

将Hexo搭建到自己的服务器上

2022-01-28 13:33:02  阅读:169  来源: 互联网

标签:npm git Hexo hexo nginx registry var 服务器 搭建


http://xybin.top/posts/9373.html

第一部分:服务器端的操作

1.安装git 和nginx

yum install -y nginx git

2.添加一个git用户

#添加用户
useradd git
#设置密码
passwd git

# 给git用户配置sudo权限
chmod 740 /etc/sudoers
#编辑sudoers配置文件
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行 一般在文件文件最下方
git ALL=(ALL) ALL

chmod 400 /etc/sudoers

3.给git用户添加ssh密钥

su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys    #将ssh密钥粘贴进去

4.创建git仓库实现自动部署

创建git仓库并使用git-hooks实现自动部署

sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/hexo
cd /var/repo  #转到git仓库的文件夹
sudo git init --bare blog.git #创建一个名叫blog的仓库
sudo vim /var/repo/blog.git/hooks/post-update

post-update的内如如下:

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

给post-update授权

cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo
sudo chmod +x post-update  #赋予其可执行权限

5.配置nginx

cd /etc/nginx/conf.d/
vim blog.conf

blog.conf的内如如下:

server {
    listen    80 default_server;
    listen    [::] default_server;
    server_name    127.0.0.1;#可以写自己的域名
    root    /var/www/hexo;
}

检查Nginx语法并重载nginx:

nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
nginx: configuration file /etc/nginx/nginx.conf test is successful 
nginx -s reload

6.修改git用户的默认shell环境

vim /etc/passwd
#修改最后一行
#将/bin/bash修改为/usr/bin/git-shell

git:x:1002:1002::/home/git:/usr/bin/git-shell

7.解析域名

到购买域名的供应商控制台,将域名解析到自己的服务器即可。

第二部分:客户端的操作

1. 安装Git

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具。

官网下载速度慢可以使用镜像下载

linux:对linux来说就很简单,只需要一行代码

sudo apt-get install git

安装完成,使用git --version命令 来查看版本

2. 安装nodejs

Hexo使用需要安装一下nodeJs和里面的npm工具。

windows:nodejs选择LTS版本就行了。

linux:

sudo apt-get install nodejs
sudo apt-get install npm

安装完后,打开命令行

node -v
npm -v

配置npm镜像

由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。

国内优秀npm镜像
淘宝npm镜像
cnpmjs镜像
如何使用

有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。以淘宝npm镜像举例:

1.临时使用
npm --registry https://registry.npm.taobao.org install express
2.持久使用(推荐使用)
打开cmd使用命令:

npm config set registry https://registry.npm.taobao.org

// 配置后可通过下面命令来验证是否成功
npm config ls
// 此时:metrics-registry = "http://registry.npm.taobao.org/"表示设置成功
npm config get registry
// 或
npm info express

 

3.通过cnpm使用 (也可以使用cnpm)
npm install -g cnpm --registry=https://registry.npm.taobao.org
// 使用
cnpm install expresstall express

3.安装hexo

创建一个文件夹blog,然后进入(cd)到此文件夹下(或者在此文件夹下直接右键git bash打开)。

输入命令

npm install -g hexo-cli

查看一下hexo版本

hexo -v

至此就全部安装完了。

初始化hexo

hexo init myblog

这个myblog可以自己取什么名字都行,然后

cd myblog //进入这个myblog文件夹
npm install

新建完成后,指定文件夹目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • _config.yml: 博客的配置文件
hexo g
hexo server

启动hexo服务,浏览器输入localhost:4000就可以看到你生成的博客
Smiley face

4. 将hexo部署到服务器

安装完hexo就可以将hexo生成的文章部署到服务器上,打开站点配置文件 _config.yml,翻到最后,修改为

deploy:
  type: git
  repo: git@***.***.***.***:/var/repo/blog.git # IP填写自己服务器的IP即可
  branch: master

先安装deploy-git ,才能用命令部署到Git。

npm install hexo-deployer-git --save

然后

hexo clean
hexo generate
hexo deploy
hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写

注意deploy时可能要先输入email和name

git config --global user.email "你的邮箱"
git config --global user.name "你的名字"

更新完就可以在你浏览器里输入你设置的域名就可以看见你的劳动成果了

5. 发布个人文章

接下来就可以正式开始写文章喽。

hexo new newpapername

然后在source/_post中打开markdown文件,就可以开始编辑了。当你写完的时候,再

hexo clean
hexo generate
hexo deploy

输入密码上传完成就可以看到更新了。

标签:npm,git,Hexo,hexo,nginx,registry,var,服务器,搭建
来源: https://www.cnblogs.com/xjys/p/15852488.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有