如何在 Ubuntu 20.04 LTS 上安装 HTTP Git 服务器

在本教程中,我们将向您展示如何在 Ubuntu 20.04 LTS 上安装 HTTP Git 服务器。 对于那些不知道的人,HTTP Git Server 是一个开源项目,它使用 Nginx 网络服务器通过局域网 (LAN) 为 Git 存储库提供服务。 HTTP Git 服务器非常容易设置和管理。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 20.04 (Focal Fossa) 上逐步安装 HTTP Git 服务器。 对于 Ubuntu 18.04、16.04 和任何其他基于 Debian 的发行版(如 Linux Mint),您可以按照相同的说明进行操作。

在 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__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; }  }

Save 和 close 文件,然后重新启动 Nginx 服务以应用更改:

nginx -t sudo systemctl restart nginx

步骤 6. 从客户端连接到 Git 存储库。

首先,使用以下命令为您的项目创建一个目录:

mkdir my-project

接下来,导航到您的项目目录并使用以下命令初始化 Git:

cd my-project git init

我们建议将您的 Git 设置为提交电子邮件和用户名。 为此,请运行以下命令:

git config --global user.email "[email protected]" git config --global user.name "user"

之后,使用以下命令添加远程 Git 存储库:

git remote add origin https://[email protected]/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 https://git.your-domain.com/user.git  * [new branch]      master -> master

您还可以使用以下命令直接从 Git 服务器下载您的存储库:

git clone https://[email protected]/user.git

恭喜! 您已成功安装 HTTP Git 服务器。 感谢您使用本教程在您的 Ubuntu 20.04 LTS Focal Fossa 系统上安装 HTTP Git 服务器。 如需更多帮助或有用信息,我们建议您查看 Git 官方网站.