惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
D
Docker
美团技术团队
雷峰网
雷峰网
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理

atpX

自建 S3 兼容对象存储服务 Garage 听风的歌 偶尔是深夜就好了 新玩具 AirPods Pro 3 公交车上的时间 从 WHOIS 到 RDAP 通过 WireGuard 访问 NFS 共享文件 自建音乐串流服务探索 我停止了探索 Fediverse 互联网背景噪音 我的数字生活降级 小城与确定性的墙 一只特立独行的猪 Fediverse 与社交 承认的勇气 mediaX - 轻量书影音记录管理工具 我的博客写作流程 网站新增 Misc 页面 擅长对线的鲍勃 在 Chroot 环境下使用 Rsync 同步 再见 JavaScript 当我玩博客时我在玩什么 为什么我的博客没有友链页面 小熊猫与大熊猫 (HDR 照片测试) 是时候为网站开启 HTTP/3 支持了吗 使用 AdGuard Home 搭建自用 DoH 服务 谈谈读书与消遣 2023 年终总结 西安两日游 从 AirPods「升级」到 EarPods
将 Hugo 网站部署到服务器
ATP · 2020-03-17 · via atpX

使用 Git 工具方便的部署网站到远程服务器上。

本地安装 Git

没特殊需求直接官网下载相应版本一路 next 即可

远程服务器(CentOS 为例)安装 Git

1. 安装 git,执行如下命令

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
yum install -y git 

2. 创建专用用户并配置仓库

useradd git
passwd git  #直接输入密码并确认

先用 su git 命令切换到刚创建的用户

cd /home/git/
mkdir -p projects/web    #网站项目的目录,与Nginx目录一致
mkdir repos && cd repos
git init --bare web.git    #初始化创建一个仓库

创建hook函数连接项目地址与Git仓库地址

cd web.git/hooks
vi post-receive 

输入以下内容:

#!/bin/sh
git --work-tree=/home/git/projects/web --git-dir=/home/git/repos/web.git checkout -f

添加完毕后修改权限

chmod +x post-receive

exit 命令退出到root账户

chown -R git:git /home/git/repos/web.git

至此,远程仓库创建完毕

3. 设置用户权限和公钥

为了安全禁用git用户的Shell 登录权限,执行以下命令:

cat /etc/shells    #查看 git-shell 是否在登录方式里面
which git-shell    #查看路径
vi /etc/shells   #添加 which git-shell 中显示的路径,通常为  /usr/bin/git-shell

修改 /etc/passwd 中的权限,将 git:x:1000:1000::/home/git:/bin/bash 修改为 git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell

接下来配置公钥,避免每次上传都要输入密码,本地使用 git 进入 cd /.ssh 目录,输入

ssh-keygen -t rsa -C "your_email@youremail.com"    #一般备注为自己的邮箱

将生成公钥上传到服务器上的 /home/git/.ssh 目录

同步本地项目到远程仓库

进入要同步的本地项目路径,例如 /public

cd public/
git init    #初始化仓库
git remote add [分支名称] git@server_ip:/home/git/repos/web.git    #首先关联本地仓库和远程仓库

若修改了远程服务器端口(例如 1234 )则使用以下命令

git remote set-url [分支名称] ssh://git@server_ip:1234/home/git/repos/web.git

提交项目

git status    #查看当前本地项目的变化情况
git add .    #要提交文件夹的名称,"."表示将所有文件添加到跟踪列表
git commit -m "first commit"    #提交信息
git pull --rebase [分支名称] master    #获取远程库与本地同步合并,防止多人项目出错
git push -u [分支名称] master