hexo部署到centos远程服务器

配对本地和服务器的密钥

前提:服务器安装好git工具和nginx服务器,本地安装好git工具,配置好hexo

生成本地密钥

本地终端运行命令ssh-keygen -t rsa然后连续回车,会生成公钥存储到C…/user/.ssh文件夹里,pub结尾的公钥要用到

服务器增加git用户并给其权限

$ yum install git			#没安装git的运行命令安装
$ adduser git				#创建一个用户git
$ sudo passwd git			#设置git用户密码
$ chmod 740 /etc/sudoers	#修改文件权限为用户可读写执行
$ vim /etc/sudoers			#编辑文件

root  ALL=(ALL)   ALL		#找到这里,在下面添加git用户的权限
git   ALL=(ALL)   ALL

$ chmod 400 /etc/sudoers  //保存退出改回权限

创建密钥文件

$ su git						#切换git用户
$ mkdir ~/.ssh 					#创建.ssh文件夹
$ vim ~/.ssh/authorized_keys	#创建authorized_keys文件

# 它们是密钥文件是隐藏的,文件管理器直接看不到,但是可以访问/root/.ssh路径来看到文件或者cd /root/.ssh   ls来查找
# 然后将win10中生成的id_rsa.pub文件里的公钥复制到authorized_keys文件中,vim右键粘贴,不要用ftp管理器打开文件粘贴

$ chmod 600 /home/git/.ssh/authorized_keys #将文件设置为可读可写
$ chmod 700 /home/git/.ssh 	#将该文件夹设置为可自由访问

测试git连接

本地终端输入命令ssh -v git@服务器ip,测试是否能不用输入服务器git用户密码就可以连接(我是后来才可以免密连接的)

第一步不成功也没事,就是每次部署需要密码来连接

服务器创建仓库

$ mkdir /var/repo   #创建一个仓库目录,后面存放git裸库
$ chown -R git:git /var/repo  #变更该目录的所有者,注意是chown
$ chmod -R 755 /var/repo  #让该目录权限开放,可读写执行
$ mkdir /var/www/hexo   #创建一个目录作为网站根目录存放网站静态文件
$ chown -R git:git /var/www/hexo  #变更该目录的所有者为git用户
$ chmod -R 755 /var/www/hexo   #开放权限
#nginx我用宝塔部署nginx直接创建该站点了,后期也可以方便管理站点
#也可以找到/etc/nginx的配置文件nginx.conf,设置里面的网站根目录
server {
	        listen       80 default_server;
	        listen       [::]:80 default_server;
	        server_name  _;
	        root         /var/www/hexo;
	        index index.html index.htm;
	        # Load configuration files for the default server block.
	        include /etc/nginx/default.d/*.conf;
	
	        location / {
	        }

建立git裸库

$ cd var/repo
$ git init --bare hexoBlog.git #创建裸库,但里面不是没有内容
$ vim /var/repo/hexoBlog.git/hooks/post-receive  #在hooks目录下新建一个新的钩子文件 post-receive并vim编辑
#vim编辑(按i)然后粘贴下面两句,window的粘贴模式可能会不一样

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f 

#该钩子的意思是当本地有提交到服务器时,会将文件放在网站根目录
$ chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
$ chmod +x /var/repo/hexoBlog.git/hooks/post-receive

配置Hexo站点文件

滑到最下面

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@服务器IP:/var/repo/hexoBlog.git #这个裸库单纯用来连接
  branch: master

写在最后

这次部署流畅参照了下面这两篇博文,上面笔记记得这么详细主要在于它们两篇博客都有相同的错误——单词写错,而且还是错同一处…第二篇命令介绍写得详细,但在配对密钥的步骤那里好像错了,这两处错误害!掉了好些时间!

https://www.jianshu.com/p/0f9dfa9c141b

https://blog.csdn.net/weixin_41154636/article/details/99685965

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章