在本教程中,我们将向您展示如何在 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 官方网站.