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

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