正文

首先我们谈一谈搭建个人博客必要性,个人认为在学习过程中,被动接管知识对你的提高是轻微的。
比如你看网课学习,在听老师讲解的时候觉得大略易懂,代码逻辑明了清晰,当自己敲代码的时候,却无从下手,这也属于眼高手低的范畴。

当自己主动学习,主动思考其效率和对个人的提升无疑是高于被动接管的。
然而使你提高最大的是主动说出自己认知,把自己的知识和理解传达给他人,这种办法是对你提升是最显著的。

php个人博客制作小白也能看懂30 分钟搭建小我博客 PHP

写博客,做条记非常有必要,网上有一些博客搭建的教程,在自己实际操作中碰着很多坑,摧残浪费蹂躏不少韶光,那些都是把紧张步骤给出且韶光久远,没有详细的图文合营。

在自己搭建成功后,把搭建过程记录下来分享给大家。
如果以为麻烦想采取 CSDN、博客园、SF 等平台揭橥博客也没问题,本文章仅仅适于想搭建属于自己博客的读者。
其余习气做条记的同学,这里有一份条记软件推举:做条记软件推举

终极成果:PC端:

移动端:

一. 序言

本篇文章将会利用最初始的虚拟机安装崭新的系统(Windows 7)和DiGitalOcean购买的做事器(CentOS7.5)作为示例,把稳并不是让大家在虚拟机上搭建,为了仿照崭新的环境,作者采纳虚拟机的办法,你们直接在个人电脑操作即可。

当然可以选择阿里云或者腾讯云,而我为什么选择DigitalOcean购买做事器?紧张缘故原由是便宜,只须要5美元就能购买一年期限的美国做事器,须要学生GitHub认证后会赠予代金券,不过购买做事器须要Paypal,购买地址为:

https://m.do.co/c/1d4464e8355e.

本文的特点是细节多,想到什么补充什么,因此,大家碰到问题时,可以通过细节上的不同找到问题所在.

本篇文章的受众:

1. 极客,想拥有一个俊秀的博客,想快速理解,但不想把韶光花在由于细节导致的各种问题上.

2. 只是想快速拥有一个在自己做事器上的博客的朋友.

二. 博客框架的选择

如果你是我所说的本篇文章的受众,当你要搭建一个博客时,你绝不会想自己从头到脚写一个框架出来.我在这里向大家先容几款盛行的Blog框架:

Jekyll (https://jekyllrb.com/)

hugo (http://www.gohugo.org/)

django (https://www.djangoproject.com/)

hexo (https://hexo.io/)

这里我考虑了一下,并没有将须要我们自己管理数据库的重型CMS(如:WordPress等)纳入.

选择的标准有什么呢?

都雅程度

系统需求

搭建难度

可扩展性

插件供应

文档是否全面

如果你是python学习者,请选择django,这险些是每个学习python的小伙伴的必经之路.本篇文章我选择的是Hexo,紧张是它拥有我最喜好的主题NeXT,知足了我最大的需求:都雅.

如果你也和我一样都雅是第一位,请点开每个框架的官网,找到他们的Theme下的示例,找出你最喜好的即可.那么,我们将会从Hexo开始,其他框架的请参照详细官网文档,和他们的GitHub issues.

注:和Hexo官网的Getting Started并不冲突,本文从零开始,全程截图,与官方文档互为补充.

三. Hexo先容Hexo 特点

1. 支持Markdown: 支持Markdown意味着你可以把经历从排版中解放出来.

2. 轻量: 无需拥有后台及数据库,专心写好你的文章

3. 一键支配: 可以通过Git或者ftp来将天生的静态页面支配到做事器或者主机空间中

4. 插件丰富: 丰富的插件可以知足你的各种需求.

Hexo的事情机制

Hexo基于Node.js,将/source文件夹下的资源(文章,图片,模板),按照预定的配置文件,转换成静态页面放置到/public目录下.如果须要预览或者支配,hexo会把public作为web目录处理.详细的细节可以通过实践接下来的步骤,来逐渐明晓.

Node.js和npm如果您之前打仗过Node.js,可以略过此部分.

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,为我们的Hexo供应js脚本的运行环境.而npm则是一个JavaScript的包管理工具.主流的很多措辞都会有自己的包管理器(们):

PHP

Composer

Ruby

gem

Python

pip

easy_install

Javascript

bower

npm

yarn

包管理器可以帮助你管理依赖,比如我们要装的Hexo以及Hexo插件,Hexo和Hexo插件是其他开拓者开拓的代码(Package),包管理器可以帮你下载并管理这些代码.

Hexo官网教程中利用的是npm,但是由于网络问题以及便捷性,我选择用yarn来代替,当然,轻度利用的话只是在操作上大同小异.

四. 安装所需环境

注: 以下安装为本机客户端环境安装

安装Node.js

Node.js官网下载最新LTS版本(截至发稿v8.11.1)的Node.js并安装(如果你想同时管理多版本的Node.js请利用nvm)

Yarn官网下载最新版(截至发稿v1.5.1)并安装.

安装过程根据平台不同因人而异,在此略去不表.

在命令行中通过查看版本,确保我们的环境安装成功,并且可实行文件路径添加到了环境变量之中.

安装git

Git-Downloads(git-scm.com/downloads)下载 64-bit Git for Windows Portable ,双击选择依照你个人喜好指定的目录(把稳介于权限问题,避免在c:/program files下),我安装在c:/some/git下

右键开始(windows 10)-搜索,输入环境变量,编辑系统环境变量.

3. 选择环境变量

4. 在系统变量中选择Path点击编辑

5. 在末端加上分号,然后将你安装目录下,git.exe所在路径填入(Windows 10更加简便,不再赘述)

6. 新开一个终端,然后查看git命令是否生效

7. 设置git

设置本地用户的信息,引号内随意填:

git config --global user.name \"大众illgo\"大众git config --global user.email \"大众i@illgo.cn\"大众

安装Hexo

在这一步,我们通过Yarn来全局安装Hexo.

在这里阐明Yarn(npm相同)全局安装和本地安装的差异:

全局安装会把package存放在用户目录指定的目录下,本地安装则是存放在当前项目的node_module目录中.

全局安装使我们的二进制实行文件在操作系统内全局可用,比方说,命令行下输入命令即可运行.本地安装则是作为依赖供项目调用.

我们安装hexo须要作为一个工具在命令行下可以直接运行,以是采取全局安装;而像hexo依赖的插件则可以在hexo项目目录下本地安装:

yarn global add hexo

如图即为安装成功!

五. 利用Hexo

你须要熟习并修正两个配置文件

Hexo配置文件:myblog/_config.yml主题配置: myblog/themes/next/_config.yml

创建站点目录

选择一个目录作为hexo站点目录,我选择在桌面新建一个myblog目录,作为hexo目录.

hexo init

安装主题NexT

在你的hexo站点目录下

git clone https://github.com/iissnan/hexo-theme-next themes/next

启用主题用任意编辑器打开Hexo配置文件

长成这样:

Ctrl + F 搜索 theme

theme: next

测试

hexo s --debug

按照提示,在浏览器中输入url,即可查看效果.

Hexo基本配置

我们可以通过Configuration | Hexo来理解_config.yml的基本配置方法.后面我们将会对其进行部分补充.

NexT主题配置

NexT主题的配置可以直接查看其配置文件中的注释,已经很详细了.

六.支配

支配是本文的重点,git支配有两种办法:

支配到自己的做事器上

网优势行的GitHub Pages

本文讲的是前者,做事器支配.

支配到做事器我们的大体思路便是:

hexo天生静态页面->git提交到git做事器->git做事器通过Hook运行脚本,在www目录下clone Git仓库->呈现页面

以临时创建的Centos 7.5做事器为示例

为SSH连接创建密钥对

由于利用git作为支配,以是无法避免的我们要利用密钥对的办法来连接,而不是口令.

1. 创建SSH密钥对:

打开刚才安装git目录下的git-bash.exe.git-bash已经供应了BASH环境,为了大略和快捷,我们利用这个git-bash作为ssh工具

ssh-keygen -t rsa -C \公众i@illgo.cn\"大众

按照提示他会在当前用户目录下的.ssh目录下天生两个文件:

id_rsa 私钥

id_rsa.pub 公钥

2. 在做事器中添加公钥

后将公钥添加到你在Centos的要登录的用户名下的,我们支配采取git用户,按道理应添加到做事器的/home/git/.ssh/authorized_keys文件中.但是本次采取DigitalOcean供应的添加公钥功能,在Web中操作,他会将公钥直接添加到/root/.ssh/authorized_keys中.如果你用其他的云做事器供应商,也会有类似的功能.此过程略去.

以下操作利用ssh连接做事器来操作.

在做事器上安装Web做事器

Hexo会根据你的_config.yml配置的source_dir下的资源文件,在public_dir下天生静态网页,支配这些静态文件.本次在做事器上安装Apache作为web做事器,通过Git和Git hook来支配.

安装Apache

yum -y install httpdsystemctl start httpd

然后访问该做事器的80端口即可看到Apache的测试页面:

在做事器上创建Git做事器1. 做事器端安装Git

利用root账户

yum install -y git

2. 创建Git用户

useradd gitpasswd git

3. 创建空仓库

创建一个空仓库并把所有权给git用户

mkdir -p /home/git/repos/myblog.gitgit init --bare /home/git/repos/myblog.git

chown -R git:git /home/git/repos/myblog.git/

5. 在web目录下Clone

把稳: 提交的用户要对/var/www/html有写权限

git clone /home/git/repos/myblog.git /var/www/htmlchown -R git:git /var/www/html/

4. 设置Git Hook我们利用Git Hook的目的便是,在Hexo支配时,会把Hexo天生的静态web资源,自动支配到web目录下.

我们须要一个post-receivew如下:

#!/bin/bash#判断是不是远端仓库IS_BARE=$(git rev-parse --is-bare-repository)if [ -z \公众$IS_BARE\公众 ]; thenecho >&2 \"大众fatal: post-receive: IS_NOT_BARE\"大众exit 1fiunset GIT_DIRDeployPath=\公众/var/www/html/\"大众echo \公众===============================================\"大众cd $DeployPathecho \"大众deploying the myblog web\"大众#git stash#git pull origin mastergit fetch --allgit reset --hard origin/mastertime=`date`echo \"大众web server pull at webserver at time: $time.\"大众echo \公众================================================\"大众

在DeployPath中填入你的www目录,这里我采取Apache Web做事器默认的位置.

在本地打算机中,我们可以利用刚git-bash.exe利用scp工具将这个文件上传到git做事器的hook目录下

配置git支配

添加 hexo-deployer-git 包依赖

yarn add hexo-deployer-git

设置_config.yml中的deploy:

- type: git repo: git@159.89.144.28:/home/repo/blog.git

测试

在Hexo站点目录下

hexo g --deploy

访问之前的url就会看到效果了!

七. SEO

关于SEO优化和其它内容我们单独一篇文章讲解,为了方便搜索引擎的检索,我们要只管即便使自己文章的路径深度小,Google会收录你的网站,但是百度须要一定的浏览访问。
你可以投稿原创文章到此平台,我们会注明你的博客链接,久而久之自己的博客会被收录。

问题记录

deploy的时候涌现

mote: error: cannot run hooks/post-receive: No such file or directory

然而我的post-receive是存在且精确的,而且有实行权限.

当直接运行post-receive的时候创造缺点是这样的:

-bash: /home/git/repos/myblog.git/hooks/post-receive: /bin/bash^M: bad interpreter: No such file or directory

这是由于换行字符的缘故原由,Unix下该当是LF,以是提示的”未找到文件”指的是/bin/bash末端多了个字符未找到.利用编辑器切换一下换行办法并保存.

Git - remote: error: cannot run hooks/post-receive: No such file or directory报错查看下方链接:

https://stackoverflow.com/questions/11630433/git-remote-error-cannot-run-hooks-post-receive-no-such-file-or-directory/40355988

八、设置域名

首先去阿里云或者腾讯云购买域名,然后实名认证就可以了。

1. 打开域名管理,点击解析

2. 添加记录,选择 www

3. 记录值为自己做事器的ip地址

4. 输入 www.wang91.cn

总结

以上便是完成个人博客搭建的教程了,如果你在操作过程中碰着了不懂的问题或者困难,请利用下方讯问码,只管即便问题说清楚。
本教程面向根本的同学,如果搭建成功,请打赏原作者,原创不易,多多支持。

教程作者打赏码