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

2023年 7月 21日 54.0k 0

HTTP Git Server 是一个开源项目,它使用 Nginx 网络服务器通过局域网 (LAN) 为 Git 存储库提供服务。HTTP Git Server 非常容易设置和管理。git-logo

在 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 网站。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论