HTTP Git Server 是一个开源项目,它使用 Nginx 网络服务器通过局域网 (LAN) 为 Git 存储库提供服务。HTTP Git Server 非常容易设置和管理。
在 Ubuntu 20.04 LTS Focal Fossa 上安装 HTTP Git 服务器
步骤 1. 首先,通过apt
在终端中运行以下命令确保所有系统包都是最新的。
sudo apt update sudo apt upgrade sudo apt install fcgiwrap apache2-utils unzip
步骤 2. 在 Ubuntu 20.04 上安装 Nginx。
Nginx在默认的 Ubuntu 存储库中可用。要安装它,请运行以下命令:
sudo apt install nginx
安装完成后,运行命令使 Nginx 在您的服务器启动时自动启动:
sudo systemctl stop nginx sudo systemctl start nginx sudo systemctl enable nginx
配置防火墙。
同时,您需要确保您的防火墙配置为允许 HTTP (80) 和 HTTPS (443) 端口上的流量。Nginx 将自己注册为一个服务ufw
:
sudo ufw allow in "Nginx Full"
步骤 3. 在 Ubuntu 20.04 上安装 Git。
运行以下命令在您的 Ubuntu 系统上安装 Git:
sudo apt install git
确认 Git 安装:
git --version
步骤 4. 创建 Git 存储库。
现在我们创建一个目录来存储 Git 存储库:
mkdir /var/www/html/idroot-repo
接下来,将目录更改为并为用户创建另一个目录:idroot-repo
cd /var/www/html/myrepo mkdir user.git
现在我们将使用以下命令初始化存储库:
cd user.git git --bare init
接下来,使用以下命令更新 Git 服务器:
git update-server-info
使用以下命令为存储库提供正确的所有权:
chown -R www-data:www-data /var/www/html/idroot-repo chmod -R 755 /var/www/html/idroot-repo
之后,创建一个名为 user 的用户并设置密码以使用 HTTP 基本身份验证限制对 git 存储库的访问:
htpasswd -c /var/www/html/idroot-repo/htpasswd user
步骤 5. 配置 Nginx 以提供 Git 存储库。
现在我们创建一个 Nginx 虚拟主机配置文件来为 Git 存储库提供服务:
nano /etc/nginx/conf.d/git.conf
添加以下几行:
server { listen 80; root /var/www/html/idroot-repo; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name git.your-domain.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location ~ (/.*) { client_max_body_size 0; auth_basic "Git Login"; auth_basic_user_file "/var/www/html/idroot-repo/htpasswd"; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/idroot-repo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
保存并关闭文件,然后重新启动 Nginx 服务以应用更改:
nginx -t sudo systemctl restart nginx
步骤 6. 从客户端连接到 Git 存储库。
首先,使用以下命令为您的项目创建一个目录:
mkdir my-project
接下来,导航到您的项目目录并使用以下命令初始化 Git:
cd my-project git init
我们建议将您的 Git 设置为提交电子邮件和用户名。为此,请运行以下命令:
git config --global user.email "user@your-domain.com" git config --global user.name "user"
之后,使用以下命令添加远程 Git 存储库:
git remote add origin http://user@git.your-domain.com/user.git
接下来,创建一个名为 dev 的目录并在其中添加一个文件:
mkdir dev echo "This is my first my application" > dev/file
我们现在可以使用以下命令将这些文件添加到 git 中:
git add .
使用以下命令提交更改:
git commit -a -m "Add files and directories"
然后,使用以下命令将我们所有新创建的目录和文件推送到服务器:
git push origin master
连接后,您将获得以下输出:
Counting objects: 8, done. Writing objects: 100% (4/4), 512 bytes | 346.00 KiB/s, done. Total 8 (delta 0), reused 0 (delta 0) To http://git.your-domain.com/user.git * [new branch] master -> master
您还可以使用以下命令直接从 Git 服务器下载您的存储库:
git clone http://user@git.your-domain.com/user.git
感谢您使用本教程在您的 Ubuntu 20.04 LTS Focal Fossa 系统上安装 HTTP Git 服务器。如需其他帮助或有用信息,我们建议您查看官方 Git 网站。