hexo博客部署到华为云服务器
其实也是照着别人的博客摸索才成功的,所以大部分操作和他们也是一样的。主要是记录一下
环境准备:
华为云服务器一个(ubuntu 18.04)
windows本地主机 (win10)
主要步骤
服务器的配置
在华为云中添加安全组,放行入规则的 80 8080 4000 等常用的端口
在控制台中输入下面命令(nginx是为了可以访问我们的服务器)
apt install nginx
然后启动nginx
systemctl start nginx
systemctl enable nginx
可以通过访问服务器的公有IP访问服务器了,会出现nginx的默认页面
安装git
apt insatll git
安装好git后还需要添加一个git用户(linux系统的),用来专门存放git的东西
adduser git
设置git账户密码,然后输入密码
sudo passwd git
git用户和root用户互相切换:
su root
su git
- nodejs和npm的安装,这个参考一下就行了
本地主机的配置
- 安装git node.js hexo
安装好git后,要生成sshkey,邮箱随便填也可以
(这里一定要带上邮箱,如果不带邮箱key中会带上计算机的用户名,如果是中文就继续不下去了)
ssh-keygen -t rsa -C “xxx@example.com”
在c盘用户下的.ssh文件夹会生成两个文件,id_rsa(密钥文件),id_rsa.pub(公钥文件)
打开其中的id_rsa.pub,里面的内容全部复制下来(后续会用到)
进入服务器
cd /home/git
mkdir .ssh
vim authorized_keys
然后将复制的内容粘贴到authorized_keys中(华为控制台支持复制粘贴【但是不支持中文】)
保存。这里的authorized_keys是用来进行ssh连接的
:wq
然后修改这两个文件的权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
然后再本地使用GitBash使用ssh
ssh -v git@服务器公网IP
不需要输入密码,成功和服务器连接上 这是完成自动部署最重要的步骤!!
-
本地博客的搭建以及展示
安装好hexo以后,随便找个方便的地方创建一个blog文件夹(D盘根路径)
然后进入blog文件夹中,右键打开git bash,输入命令hexo init
npm install hexo-deployer-git --save
npm install hexo-server
hexo g
hexo s:hexo的初始博客就创建完成了!打开浏览器输入http:// localhost:4000就可以看到我们的博客了
上面的命令中 hexo init是hexo initialize 博客初始化
npm install hexo-deployer-git --save 使用npm安装hexo的git插件包
hexo generate (可以用g代替这个命令)博客生成
hexo server (可以用s代替) 发布到服务器上
还有一个命令 hexo deploy hexo部署后面将会用到这个命令
服务器构建相关配置
网上很多搭建到github上的教程,但是因为github网速太慢,所以有自己的服务器肯定用服务器
那为什么用服务器还要用到git呢?
因为我们从本地部署项目到服务器上,是通过上传项目到服务器上;
我们在本地上修改自己的项目(hexo博客),然后修改好后又要上传,多次修改就很麻烦了
所以我们需要借助git的自动部署工具 git-hooks
repo作为git仓库目录
Hexo作为网站根目录
mkdir -R /var/repo
mkdir -R /var/www/hexo
初始化repo生成一个git裸库
cd /var/repo
git init --bare blog.git
然后使用git-hooks同步网站根目录在这里我们使用post-receive这个脚本实现自动部署:
vim /var/repo/blog.git/hooks/post-receive
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
修改post-receive的权限
chmod +x post-receive
这条命令递归的将repo目录及其子目录用户组设置为git,另一个文件加同理
chown -R git:git /var/repo/
chown -R git:git /var/www/hexo
cd /etc/nginx/site-available
vi default
修改root, 然后保存退出
root /var/www/hexo
:wq
保存退出
配置_config.yml:
deploy:
type: git
repo: git@server_ip:/var/repo/blog.git
branch: master
- 本地生成博客并上传到服务器:
hexo clean
hexo g && hexo d
- 服务器上重启nginx
nginx -s reload
打开服务器输入服务器公网IP就可以进入到博客了!!
一些我遇到的问题
1.博客更换主题有时会崩掉,我暂时没有找到方法,都是重装hexo,后面有解决方法再上传
2.上传至服务器时出现:ERROR Deployer not found: git 因为没有安装git的插件
在hexo安装的文件中输入下面这个命令:
npm install hexo-deployer-git --save
大家有什么问题也可以直接找我。