最近买了一个搬瓦工的云服务器,想着国内访问github或者加载github资源稍慢,想着自己把博客搬到服务器上。中间遇到挺多坑,想着记录一下搭建的过程。
环境部署
本地环境:windows10(64位)
,hexo+git+Nodejs
服务器环境:Ubuntu14.04
,nginx+git
本地环境搭建
- 安装Git
- 安装Hexo
生成ssh公钥(这一步百度到处都有,生成过了就不用了)
- 命令行或者gitbash输入:
ssh-keygen -t rsa -C "xxx@example.com"
- 生成的文件在
~/.ssh
目录中id_rsa.pub
,这个之后要写入服务器中
- 命令行或者gitbash输入:
服务器环境搭建
安装git
- 因为Ubuntu自带git,我的已经是最新版本了,所以无需下载,如果安装的话,如果是最新版本也会提醒无需安装。
- 如果不是ubuntu可以
yum install git
创建git账户
adduser git chmod 740 /etc/sudoers vim /etc/sudoers
这里也很重要,因为创建git账户,后面很多命令必须在git下执行,否则会没有权限。
- 打开文件后找到
root ALL=(ALL) ALL
- 在后面添加
git ALL=(ALL) ALL
保存并退出,修改权限
chmod 400 /etc/sudoers
设置git账户密码
sudo passwd git
切换至git用户,创建
~/.ssh
文件和~/.ssh/authorized_keys
文件,并赋予相应的权限:su git mkdir ~/.ssh vim ~/.ssh/authorized_keys #这里把本地主机的id_rsa.pub中的内容粘贴到authorized_keys中 chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
Tip:这一步在git用户下进行很重要,因为后面部署到云服务器上的时候可能会permission denied。
在本地终端中测试是否能免密登陆git
ssh -v git@server_ip
创建目录
#repo作为git仓库目录 mkdir -R /var/repo #Hexo作为网站根目录 mkdir -R /var/www/hexo
Tip:这一步若是没有权限,可以在root下创建,之后修改权限(后面会说到)
配置nginx
apt-get install nginx
然后
vi /etc/nginx/sites-available
(不同Linux发行版会略微有差别,比如centos好像就是nginx.conf
文件):server { listen 80; # server_name 填写自己的域名 server_name www.xxx.com; # 这里root填写自己的网站根目录 root /var/www/hexo; index index.html index.php index.htm; #/usr/local/tomcat/webapps/Forum # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } location ~ .php$ { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
如果本地已经写过博客了的话,只是搬移到服务器,可以在
/etc/www/
下把代码clone下来,并改为hexo文件夹,现在你访问服务器ip就已经能够看到之前的博客界面啦~下面要做的就是用git自动化部署博客。
使用Git自动化部署博客
现在服务器上已经有了一个nginx的web环境,也有了静态页面的目录,但是要实现本地发布博客需要利用git,但是用git每次pull,clone又会很麻烦,这里用到了
git-hooks
同步实现自动化部署。- 打开文件后找到
服务器建立裸库,这里要用
git
用户登录,确保git
拥有仓库所有权。su git cd /var/repo/ git init --bare blog.git
使用
git-hooks
同步网站根目录在这里我们使用
post-receive
这个脚本实现自动部署:vim /var/repo/blog.git/hooks/post-receive #写入 #!/bin/sh git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
保存,接着
chmod +x post-receive
在本地的博客主目录下,配置
_config.yml
:找到deploy:
deploy: type: git repo: git@server_ip:/var/repo/blog.git branch: master
现在就完成啦~测试部署:
hexo generate && hexo deploy
Connection denied
在部署过程中,执行
hexo d
发现部署出错,什么权限不允许之类的,这里我们需要检查我们在上述的git操作部署是否使用了git
用户操作,若是没有,需要给相应的目录更改用户组
使用chown -R git:git /var/repo/
这条命令递归的将repo
目录及其子目录用户组设置为git
,同时chown -R git:git /var/www/hexo
,这样即可解决此类问题。域名注册解析
我用的是搬瓦工服务器,$49.99一年,用优惠码大概$46左右,配置也很不错,最重要的是无需备案~太爽了!还可以搭梯子(谨慎,容易被封IP)
但是用这个服务器的时候他为了安全,ssh端口号是随机的,因此最好自己改回22,然后重启reboot
,因为自动部署默认22端口,否则会造成一直连不上服务器的情况。
然后,我在namesilo)上注册了一个.com域名,一年只要$8.99,配上优惠码还能再省$1,可以说很划算了,我的博客,接着配置域名解析,教程很多,附上我参考的解析教程-->域名解析
大功告成!!!!!这样博客就成功部署到云服务器上啦~速度比GitHub快了很多~
12 条评论
哈哈哈,写的太好了https://www.lawjida.com/
《血搏敌枭》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/14580.html
《九九艳阳天》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/84727.html
《希尔玛》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/72826.html
《新抱喜相逢国语》香港剧高清在线免费观看:https://www.jgz518.com/xingkong/96089.html
《第一杀手王亚樵》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/38064.html
想想你的文章写的特别好www.jiwenlaw.com
看的我热血沸腾啊https://www.ea55.com/
想想你的文章写的特别好https://www.237fa.com/
怎么收藏这篇文章?
叼茂SEO.bfbikes.com
博主真是太厉害了!!!