Centos 安装 nginx 及部署 hexo
上一篇文章说把服务器迁移到了 Vultr ,但是晚上丢包达到百分之60以上,遂再次把服务器迁移到 Bandwagonhost ,开启 bbr 丢包很少.而且这次只用了一个半小时就配置完了(我不知道如何能直接把服务器跨运营商转移)
这次 ss-server 偷懒用了秋水逸冰一键安装包.
先安装和配置Nginx
cd /etc/yum.repos.d/
vi nginx.repo
填写如下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
保存,则会产生一个/etc/yum.repos.d/nginx.repo
文件。
下面直接执行如下指令即可自动安装好Nginx:
yum install nginx -y
yum
安装 nginx
,我们可以通过 系统服务命令 service
来启动或停止
service nginx start #启动 nginx 服务
service nginx stop #停止 nginx 服务
service nginx restart #重启 nginx 服务
nginx -s reload #重载 conf 文件
输入命令 nginx -t
得到配置文件在/etc/nginx/nginx.conf
然后cd /etc/nginx/conf.d
把default.conf
复制一份出来 cp default.conf blog.conf
修改blog.conf
重启 nginx 服务,就可以了
下面部署 hexo
安装 git:
sudo yum install git
centos 自带有git
创建一个 git 用户,用来运行 git 服务:
sudo adduser git
虽说现在的仓库只有我们自己在使用,新建一个 git 用户显得不是很有必要,但是为了安全起见,还是建议使用单独的 git 用户来专门运行 git 服务
创建证书登录,把自己电脑的公钥,也就是 ~/.ssh/id_rsa.pub
文件里的内容添加到服务器的 /home/git/.ssh/authorized_keys
文件中,添加公钥之后可以防止每次 push 都输入密码,使用 ssh-copy-id -i ~/.ssh/id_rsa git@server
初始化 Git 仓库,我是将其放在 /home/git/repo/blog.git
目录下的:
sudo mkdir /home/git/repo
cd /home/git/repo
sudo git init --bare blog.git
使用 –bare 参数,Git 就会创建一个裸仓库,裸仓库没有工作区,我们不会在裸仓库上进行操作,它只为共享而存在。
配置 git hooks
我们这里要使用的是 post-receive
的 hook
,这个 hook
会在整个 git 操作过程完结以后被运行。
在 blog.git/hooks 目录下新建一个 post-receive 文件:
cd /home/git/repo/blog.git/hooks
vi post-receive
在 post-receive 文件中写入如下内容:
#!/bin/sh
git --work-tree=/var/www/blog --git-dir=/home/git/repo/blog.git checkout -f
注意,/var/www/blog 要换成你自己的部署目录,一般可能都是 /var/www/html。上面那句 git 命令可以在我们每次 push 完之后,把部署目录更新到博客的最新生成状态。这样便可以完成达到自动部署的目的了。
不要忘记设置这个文件的可执行权限:
chmod +x post-receive
改变 blog.git 目录的拥有者为 git 用户:
sudo chown -R git:git blog.git
禁用 git 用户的 shell 登录权限。
出于安全考虑,我们要让 git 用户不能通过 shell 登录。可以编辑 /etc/passwd 来实现,在 /etc/passwd 中找到类似下面的一行:
git❌1001:1001:,,,:/home/git:/bin/bash
将其改为:
git❌1001:1001:,,,:/home/git:/usr/bin/git-shell
这样 git 用户可以通过 ssh 正常使用 git,但是无法登录 sehll。
至此,服务器端的配置就完成了。
本地配置
配置你的 hexo 博客可以自动 deploy 到服务器上,再也不用 ftp 上传了。
修改 hexo 目录下的 _config.yml 文件,找到 [deploy] 条目,并修改为:
deploy:
type: git
repo: [email protected]:/home/git/repo/blog.git
branch: master
要注意切换成你自己的服务器地址,以及服务器端 git 仓库的目录。
本地配置就是如此地简单。至此,我们的 hexo 自动部署已经全部配置好了。
使(zhuang)用(bi)
从此以后,要发新博客的步骤不要太简单:
hexo new "new-post"
# bla..bla..bla..
hexo clean && hexo generate --deploy
有没有很酷很方便,一条命令就可以将博客自动部署到自己的 VPS 上了,开始快乐地写博客吧。
(很懒,里面很多话都是复制的,只是为了下次在瞎折腾能参考一下)
提示
如果遇到 hexo d
提示已经完成,但是服务器断无变化,可尝试删除博客目录下的 .deploy_git