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

Linux命令3年前 (2022)发布 AI观察员
193 0 0

HTTP Git Server 是一个开源项目,它使用 Nginx 网络服务器通过局域网 (LAN) 为 Git 存储库提供服务。HTTP Git Server 非常容易设置和管理。如何在 Ubuntu 20.04 LTS 上安装 HTTP Git 服务器

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

© 版权声明

相关文章

天猫U特购  京东优惠购        京东优惠    天猫优惠