摘要:在这里的作用只要是用管理员权限安装一些软件和开启一些服务创建操作用户和分配权限。输入完毕之后,命令模式下输入强制保存退出。保存之后,修改文件权限最后一步,开放服务器中的端口。
知识点准备
我主要参考了两篇文章:
【持续更新】最全Hexo博客搭建+主题优化+插件配置+常用操作+错误分析
基于CentOS搭建Hexo博客
我采用的方案是云服务器+域名的方式
首先是要搞懂一些概念
NginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。在这里的主要作用就是挂载相关目录到对应端口(或者说让其他计算机访问服务器的某个端口时,直接访问对应目录)。该教程中只需要装在服务器。Git
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。简单来说就是代码库及版本管理工具。在这里的作用就是:在服务器中创建仓库(钩子),然后在本地的git工具中拉取项目和提交项目。其中hexo里面集成了提交打包好的文件的命令,即hexo d。该教程需安装在服务器和客户端。Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。一般用于服务器的操作系统,多用户这个概念很重要,不同的用户对文件的操作权限都会不同。在这里的作用只要是用root管理员权限安装一些软件和开启一些服务、创建git操作用户和分配权限。git用户只能对git仓库所在文件夹进行操作。Node.js
注意:在这里使用的是centos版本。其中yum是centos自带的包管理工具。文中编辑文本信息都用的是vim编辑器。
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。也就是说node.js是一个后台语言。这个是hexo的依赖环境,同时我们还需要用到node.js里面包含的包管理工具npm。一般来说这个只需要安装在本地即可,也就是说你要对博客进行操作或者开发的时候,就一定要有node.js的环境。思路整理
结合上面涉及的知识点,我先大概列一下服务器端和客户端所需要做的事情。
服务器端:
安装Git、创建仓库、及配置自动部署
创建git用户并分配好文件夹权限
安装Nginx和配置好
客户端:
安装Git
安装node.js
安装hexo框架
客户端配置客户端方面的配置比起服务器端就简单很多,因为客户端的工作只要负责编辑文章、修改项目文件、推送文章等操作。
本人使用的操作系统是windows,下面的配置项也只提供windows的操作方法。
直接在 Git官网 找到该位置下载,然后安装即可
安装了之后配置一下个人信息,输入以下命令。
git config --global user.name "yourname" git config --global user.email "youremail"
(第一次安装git的跳过这一步)然后检查该电脑有没有创建ssh密匙对,“id_rsa”(私匙)和“id_rsa.pub(公匙)”这两个。找到图中的目录(Administrator这个是我的用户名,视个人情况而定。)。
(已经有密匙对的话跳过这一步)在git bash中输入以下命令创建密匙对(注意修改自己的邮箱):
ssh-keygen -t rsa -C "自己的邮箱"
到这里就应该已经完成了密匙对的创建了,注意一下这个 id_rsa.pub ,待会服务器配置会用得上。
安装Node.js很简单,直接到 官网 下载、安装即可。
安装了Node.js之后里面包含了npm包管理工具。
这一步就需要用到刚刚下载Node.js里面的npm命令了。
首先通过npm全局安装hexo,打开cmd命令行输入:
npm install -g hexo-cli
等到安装完成后,就要开始创建、初始化项目了。先把刚刚的命令窗口关掉吧。然后进入你要创建项目的目录,比如在 D:/projects/ 创建之后就是 D:/projects/blog,然后在当前目录打开命令行,输入:
hexo init blog
等到安装结束后进入项目目录。找到"package.json",编辑文件,在"dependencies"中追加以下一行:
在当前项目目录下执行以下命令:
npm install
到这里客户端的项目就已经可以启动了,输入以下验证下:
hexo s
如果看到这条信息,说明项目启动成功,打开浏览器访问 localhost:4000 就可以看到网站了。
客户端的就差不多了,其中还有个服务器仓库配置在“服务器端配置”章中底部会说明。
文章末还会有一些常用命令的小补充。
登录服务器的root用户,运行以下代码安装nginx:
yum -y update yum install -y nginx
配置nginx
接下来要修改配置,设置网站映射的根目录和访问域名。使用vim编辑以下文件:
vi /etc/nginx/conf.d/default.conf
找到对应配置,修改中文的地方:
server { listen 80; #这里填端口号,80即默认端口,访问时不需带端口号。 server_name 这里填写域名 root 这里填写网站根目录地址; }
启动nginx:
service nginx start安装git和创建钩子
安装git:
yum install -y git
创建git用户以及设置密码(创建git用户是为了安全起见,防止权限太大进行其他操作):
adduser git passwd git
给git用户分配更高级的权限
输入以下代码 sudo vi /etc/sudoers ,打开sudoers文件,输入 :/root 进行搜索,搜索到代码行 root ALL=(ALL) ALL ,然后在这一行下添加以下代码 git ALL=(ALL) ALL 。输入完毕之后,命令模式下输入 wq! 强制保存退出vi。
效果如下图:
图片来自网站:https://segmentfault.com/a/11...
切换到git用户登录,在用户home目录中添加密匙文件。作用是识别客户端的主机身份,可免登录操作git仓库
su git mkdir ~/.ssh vi ~/.ssh/authorized_keys
编辑 authorized_keys 文件时将(上文提过)客户端创建的公匙 “id_rsa.pub” 内容复制到文件中。
接下来就要分配权限
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
现在就验证下之前的配置是否生效,在客户端的git bash中输入(记得改服务器ip):
ssh -v git@服务器ip
在git的home目录中创建 初始化一个裸库,以管理代码。
cd ~ git init --bare blog.git
创建一个钩子,作用是当仓库文件有新的推送时,把文件拷贝到站点根目录下。使用vim创建并编辑post-receive文件:
vi ~/blog.git/hooks/post-receive
添加以下内容进去(其中/var/www这个是网站根目录,记得修改成自己的。):
#!/bin/sh git --work-tree=/var/www --git-dir=/home/git/blog.git checkout -f
保存之后,修改文件权限
chmod +x ~/blog.git/hooks/post-receive
最后一步,开放服务器中的80端口。
先输入以下命令确认防火墙有无开发80端口:
iptables -L -n # 注意 Chain OUTPUT里面有无以下这行,没有的话就是没有开发 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
若没有开放则需要修改配置:
vi /etc/sysconfig/iptables #打开后在配置项找到对应的位置插入以下这行。 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
然后重启防火墙以更新配置
service iptables restart
到这里服务器端的就配置完啦
接下来就是上文说到的仓库地址配置
在客户端的项目目录下找到_config.yml,修改下面的对应信息:
deploy: type: git repo: git@SERVER:/home/git/blog.git #此处的SERVER需改为你自己服务器的ip branch: master补充
hexo还有很多用户制作的主题供大家选择,可以在 官网主题 上找,进去对应的主题中会有教程的了。
hexo常用指令有如下(都可以只写第一个字母,如 hexo n):
hexo clean # 清空缓存文件和已生成的静态文件 hexo new [名字] # 新建一篇文章 hexo generate # 生成静态文件,即html文件 hexo deploy # 部署网站,即提交到服务器的仓库(之前的git钩子已设置成仓库文件一旦更新,会自动更新到站点目录)。
更多指令可在 官方文档 中查询。
第一次写一篇这么长的文章,口水话很多,也有很多不清晰的地方。不过相信会越写越好的。
祝大家学习愉快,工作顺利!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/105018.html
摘要:工具技术创建项目账户注册和新建项目,项目必须要遵守格式账户名,不然接下来会有很多麻烦。安装在自己认为合适的地方创个文件夹,我是在盘建了一个文件夹。 工具:Visual Studio Code/MarkdownPad技术:Hexo+Github 创建Github项目 Github账户注册和新建项目,项目必须要遵守格式:账户名.github.io,不然接下来会有很多麻烦。并且需要勾选In...
摘要:工具技术创建项目账户注册和新建项目,项目必须要遵守格式账户名,不然接下来会有很多麻烦。安装在自己认为合适的地方创个文件夹,我是在盘建了一个文件夹。 工具:Visual Studio Code/MarkdownPad技术:Hexo+Github 创建Github项目 Github账户注册和新建项目,项目必须要遵守格式:账户名.github.io,不然接下来会有很多麻烦。并且需要勾选In...
摘要:工具技术创建项目账户注册和新建项目,项目必须要遵守格式账户名,不然接下来会有很多麻烦。安装在自己认为合适的地方创个文件夹,我是在盘建了一个文件夹。 工具:Visual Studio Code/MarkdownPad技术:Hexo+Github 创建Github项目 Github账户注册和新建项目,项目必须要遵守格式:账户名.github.io,不然接下来会有很多麻烦。并且需要勾选In...
摘要:下面贴上栈长博客的地址,也是技术栈的官方博客地址今天分享一下,如何从开始搭建一个自己的技术博客,基于栈长的博客。的国内访问不是很快,这里推荐使用自己搭建国内的云服务器,使用搭建静态服务。 技术博客的选型有很多种,如:博客园、CSDN、开源中国、简书、知乎等……都可以用来写文章,形成自己的技术博客。 上面的博客都是第三方的,有没有方式搭建自己的服务器、自己的域名的博客呢?栈长知道的成熟方...
阅读 1167·2021-11-24 09:38
阅读 2567·2021-09-27 14:00
阅读 1126·2019-08-30 15:55
阅读 1312·2019-08-30 14:16
阅读 1455·2019-08-30 10:54
阅读 2840·2019-08-28 17:58
阅读 724·2019-08-26 13:22
阅读 1186·2019-08-26 12:01