本文稍长,旨在教会你怎么在自己的服务器上挂上自己的博客,并且在本地只需要写完md,然后即可迅速推送自己的文章。
1 | 首先我们把操作分成客户端的操作和服务器上的操作。 |
客户端操作如下(即你本地的电脑上):
我们需要用git来部署我们生成的代码服务器上,所以,让我们先愉快地去下载一个git本体和tortoise git,这两个能让我们将hexo生成的网站直接部署到服务器上。
下载完毕后,将git的目录加入到系统path中,方便使用git命令,然后tortoisegit的安装过程中需要注意各个选项的选择,在这里就不展开了。
那么,让我们找到git bash,在哪?在git的安装目录下。双击运行/在CMD中输入git bash。而后
输入以下代码:
1 | ls -al ~/.ssh //如果这里报错,就证明你并没有生成过.ssh文件,请进入下一步,否则直接跳到第三步 |
在git bash中直接输入
1 | ssh-keygen -t rsa -C "your_email@example.com" |
而后它应该会显示,你是否想装到特定的目录.ssh中,如下所示:
1 | ssh-keygen -t rsa -C "your_email@example.com" |
生成完毕以后。这个原材料先放在一边等着。
好了,现在让我们把这个备用一下,准备另外的原材料:本地的nodejs环境搭建,
请看完这个以后再返回到这个页面。
接下来你编写md文件,用特定的一定的模板即可快速获得你所需要的页面。
你想部署了?桥 豆 麻 袋,你得先配置服务器。
现在让我们开始进行服务器的操作。如下
让我们先进入我们的服务器,根据个人系统的不同输入下列代码:
1 | yum update |
当前使用的脚本并不支持ubuntu
1 | apt-get install screen git wget net-tools //ubuntu&debian |
然后如果你想使用LNMP的话,请自行到LNMP.sh官网安装一键脚本,建议不要安装数据库,因为就算不用,也占着太多内存。
所以,我们现在开始真正的简单的nginx 的安装方法。
(以下脚本并非是本人所写@我是王掌柜)
1 | wget http://redbook.qiniudn.com/nginx.sh //获取单一的nginx安装脚本 |
在调整好A记录指向到服务器以后,
1 | vi /usr/local/nginx/conf/nginx.conf //配置文件所在地 |
利用?命令找到以下数据
1 | server_name wasai.org geek.wasai.org; |
然后修改成你指定的域名,例如icrawler.tech
另外一个广告:
这是我分享爬虫相关知识的网站:小爬虫icrawler.tech
然后
1 | service nginx restart |
这时候打开你的浏览器,输入你的域名。你应该会看到nginx 403。
恭喜你最重要的一步完成了。
因为你的网站文件夹也就是/home/wwwroot/default中并不存在文件。
这时候你已经可以通过用filezilla或者xftp上传文件了。
但是我们怎么能够如此低效率呢,难道我们不想在本地一键部署然后直接发送到网页上面去吗?
// 其实这里有个分支,就是通过atom这种自带ftp插件的软件,在本地写好md文件,直接发送到服务器上边进行编译。这的确是个好方法,但是不够酷诶。
那好,Action
接下来开始进行git hook挂勾到服务器的超级方案,然后进行一键部署。
首先要解决免密登陆,在你的服务器上输入以下指令
1 | sudo adduser git |
找到以下内容
1 | ## Allow root to run any commands anywhere |
在下边添加一行
1 | git ALL=(ALL) ALL //注意,是存在空格的 |
然后保存退出,并且将权限改回去
1 | chmod 400 /etc/sudoers |
随后设置Git用户的密码
1 | #需要root权限 |
切换到git用户,创建~/.ssh文件夹和~/.ssh/authorized_keys文件
如下:
1 | su git |
所以,让我们直接跳回到客户端(你的电脑中)去到你的.ssh文件夹中找到刚刚生成的id_RSA.pub文件,用记事本打开,然后将里面的东西复制下来。粘贴进服务器上的authorized_keys去。所以再次强烈推荐以下xshell,方便。
修改完毕后,修改权限。
1 | chmod 600 ~/.ssh/authorzied_keys |
然后在你本地的git bash上输入下述代码尝试登陆:
1 | ssh -v git@你的ip地址 |
如果是非22端口则
1 | ssh -p 端口号 git@你的ip地址 |
至此,Git用户添加完成,也就意味着你的git可以无密码登陆这个服务器了。
当然为了保险,最后切换回root用户,赋予整个git文件以git用户的权限
1 | chown git:git -R ~/git/ //注意,这里如果你也用~省略,会报错 |
更改你的nginx的配置
建议更改成以下的样子:
1 | server{ |
再次用service nginx restart来重启你的nginx服务,当然也可以先用nginx -t来检测一下当前的nginx的配置有没有写对。
然后切换到git用户,并且新建一个裸仓库在你的目录中:
1 | su git |
这时候我们需要用到post-receive这个钩子,所以,当git有收发作用的时候就会自动调用这个钩子,并且会自动把文件发到post-receive中。
1 | vi ~/blog.git/hooks/post-receive |
保存后,要赋予这个文件可执行权限
1 | chmod +x post-receive |
然后最重要的是赋予这整个文件夹git的权限!!
而后我们开始在本地new一个hexo博客
在git bash 中输入
1 | sudo npm install -g hexo-cli |
然后初始化hexo程序
1 | cd ~/Documents/code |
转移到blog文件里面,并且安装hexo部署工具和hexo server
1 | cd blog |
打开blog文件夹中的_config.yml, 找到 deploy(就在最下边)
然后配置如下,这里有个点,如果你的vps不是22端口默认的,请如我配置否则则用原始配置就行了。
1 | deploy: |
原始:
1 | deploy: |
然后注意,在部署之前,你的服务器和blog文件夹里面。都不要有.deploy_git或者.deploy等相关部署文件夹,否则必定推送失败。
接下来输入以下命令,新建并且推送你的博客到服务器上:
1 | hexo clean |
然后稍等片刻。你就可以在你的服务器上看到你的网站了。
以后部署新的博客之前,可以先hexo new “文章题目”,然后用编辑器编写md文件夹。其实推荐使用一键脚本一键推送,其实就是很简单的bat方法。在此就不详说了。
本文作者: Bon
本文地址: https://bonxg.com/p/3.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!