本站的部署方式也是基于下方教程搭建的
所有需要的东西: Git、Nodejs、Hexo(左边三个安装在自己电脑上)、云服务器(建议系统:CentOS**)**一个(轻量也行,虚拟主机不行)、一个域名(如果是国内服务器,先备案,国外则不需要)
本地Hexo的部署(建站部分)
Hexo官网有相关的教程,可以参考。先在桌面新建一个文件夹Hexo_next
,然后进去建立的文件夹,输入
下载主题next
,有很多,可以自己选择,博主使用的是butterfly
。这里使用next
来进行演示。进入Hexo_next\themes
输入
1
| git clone https://github.com/iissnan/hexo-theme-next.git
|
下载该项目,有错误不要担心,多试几次,或者使用加速。将下载的文件名称改为next
,打开配置文件_config.yml
,在100
行左右,将主题修改为next
对应目录下,打开在git bash
输入
1
| npm i hexo-renderer-swig
|
然后输入
1
| hexo c && hexo g && hexo s
|
打开浏览器,输入如下,就可以看到 [http://localhost:4000/] 至此本地部署已经完成,后续的改动可以参考其他博文,后续开始进行服务器端的部署。
服务器端部署
安装Git,打开服务器控制面板,修改root密码一定需要修改!!!!!,选择登录。输入
然后安装Git
创建git账户
1 2 3
| adduser git chmod 740 /etc/sudoers vim /etc/sudoers
|
添加git ALL=(ALL) ALL
改回权限
设置git
账户密码
设置的密码看不到,你直接输入就可以了。这里我设置的密码太简单了会有这样的提示。不用关心直接输入,看到成功提示即可。切换至git
用户,创建~/.ssh
文件夹和~/.ssh/authorized_keys
文件,并赋予相应的权限,输入vim ~/.ssh/authorized_keys
以后先往下走,这里先放一边,我们先去创建密钥,回头粘贴在里面,先切换成git
1 2 3
| su git mkdir ~/.ssh vim ~/.ssh/authorized_keys
|
Git 常用命令(本地桌面使用即可!)
1 2 3
| git config -l //查看所有配置 git config --system --list //查看系统配置 git config --global --list //查看用户(全局)配置
|
1 2 3
| Git CMD 是windows 命令行的指令风格 Git Bash 是linux系统的指令风格(建议使用) Git GUI是图形化界面(新手学习不建议使用)
|
然后右键桌面打开git bash
配置用户名和邮箱
1 2
| git config --global user.name "你的用户名" git config --global user.email "你的邮箱"
|
通过git config -l
检查是否配置成功,至此git安装及配置全部完成。执行以下命令生成ssh公钥,此公钥用于你的计算机连接你的轻量云服务器
1
| ssh-keygen -t rsa -C "你的邮箱"
|
之后打开C盘下用户文件夹下的.ssh的文件夹,会看到 id_rsa.pub用记事本打开上述图片中的公钥(id_rsa.pub)
,复制里面的内容,然后粘贴在vim ~/.ssh/authorized_keys
中打开的界面,如果无法粘贴,Shift+i
进入编辑模式
即可,然后Ctrl+V
粘贴进入即可,然后按ESC
,在Shift+;,输入wq
,保存退出,不懂的可以百度一下vim编辑器的用法即可,赋予权限
1 2
| chmod 600 /home/git/.ssh/authorized_keys chmod 700 /home/git/.ssh
|
这样就可以尝试在你的本地登录了,SERVER
是你的云主机IP
返回服务端命令行切换到 root 账户(会要求输入之前的设置的Git密码)
然后输入,赋予权限
1 2 3
| mkdir /var/repo chmod -R 755 /var/repo chown -R git:git /var/repo/
|
创建一个新的库:
1 2
| cd /var/repo git init --bare hexo.git
|
创建一个新的 Git 钩子,用于自动部署。在/var/repo/hexo.git
下,有一个自动生成的hooks
文件夹。我们需要在里边新建一个新的钩子文件 post-receive
1
| vim /var/repo/hexo.git/hooks/post-receive
|
进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。
1 2
| #!/bin/bash git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f
|
新建一个文件用做网站的根目录,记得给权限
1 2 3
| mkdir /www/wwwroot/hexo chmod -R 755 /www/wwwroot/hexo chown -R git:git /www/wwwroot/hexo
|
Nginx
我们使用宝塔面板来一键部署Nginx
关键是简单(如果已经安装,请略过)
1
| yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
|
其中可能让你输入y/n
。输入y
确认即可,第二个SSL的输入y/n
。输入n
确认即可然后等等安装,安装结束后,复制上述地址即可。用户名与密码也有在用户面板中,打开软件商店输入Nginx
,选择免费的安装。等待安装结束。(如果进不去,请检查一下宝塔给你端口,服务器是否打开,如果没打开,请手动去打开对应端口),部署完成之后,点击网站,添加站点,填写你的域名
,,没有的话写你的服务器ip
地址。根目录选我们之前建立的/www/wwwroot/hexo
创建站点的时候,php版本记得改成纯静态,建立完站点后,去文件里找到hexo 文件并把里面所有文件全部删除,如站点创建成功,等的Inde.html ,删空即可
备注:如果你解析的是@记录,就填写xxxxxx.com
,如果你解析的是www记录,就填写www.xxxxx.com
回到服务器终端,重启宝塔服务
接下来需要将本地的生成好的/public
推送到服务器。进入本地电脑hexo
博客的根目录,编辑站点配置文件_config.yml
,找到deploy
,修改成以下(修改repo: git@127.0.0.1
:/var/repo/hexo.git,把127.0.0.1
修改成你服务器的IP
)
1 2 3 4 5
| deploy: type: git #repo改为repo: git@IP:/var/repo/hexo.git repo: git@127.0.0.1:/var/repo/hexo.git branch: master
|
接下来在宝塔文件页面找到www/wwwroot/hexo右键单击给与权限777
返回根目录,找到根目录/var/repo,右键单击给与777权限
为什么要执行上面两步
原因如下,在你本地一键三连的时候需要将本地文件推送到宝塔文件里面,如果不给予权限,会推送失败
然后使用(第一行npm执行一次就行)
1 2
| npm i hexo-deployer-git -- save hexo clean && hexo g && hexo d
|
可能会要求输入密码。你就输入你当时设置Git密码!
在推送的时候如果出现推送失败,那是你服务器22port(端口)没开,需要开启
![1685875232739.jpg](https://bu.dusays.com/2023/06/04/647c6a23f3016.jpg
在这里建议,22端口最好限制来源IP,把你自己公网IP设置成白名单,仅对你开放就行,如果之前你直接开放,并是0.0.0.0/0,请立即更改,避免被一些别有用心者,利用密码爆破等手段爆破你服务器,从而入侵,在你服务器挂病毒,挖矿木马等。在这里写一种博主常用的查自己公网IP方法
win+R 输入 cmd 回车 输入
然后复制你公网IP去服务器防火墙那里添加例如(IP地址随便编的,并不是我IP),确定即可。
当然你觉得这个麻烦,你也可以直接百度地址栏输入IP地址查询,即可看到你公网IP
在这里提醒一下,你虽然添加了IP,但是如果你是电脑连接校园网,手机热点,或者WIFi,建议每次三连之前都执行上面操作,应为不同地区,不同时间段,给你分配的IP不一样。
好用,帮助到了你,记得好评哦
你们的反馈与支持是作者坚持下去的最大动力!