文章插图
文章插图
Git 是一个开源版本控制系统,被全球成千上万的开发人员使用,它用于在源代码级别跟踪您的软件更改,它允许您跟踪更改,将其恢复到之前的阶段并创建文件和目录的备用版本 。
HTTP Git Server 是一个开源项目,它使用 Nginx 网络服务器通过局域网 (LAN) 为 Git 存储库提供服务,它非常简单且易于设置,任何人都可以从命令行界面管理它 。
在本教程中,我将解释如何在 Debian 11 上使用 Nginx 设置 HTTP Git 存储库服务器 。
先决条件运行 Debian 11 的服务器 。指向您的服务器 IP 的有效域名 。在您的服务器上配置了 root 密码 。安装 Nginx 和其他依赖
首先,您需要安装 Nginx Web 服务器和其他必需的软件包来设置 HTTP Git 服务器 。您可以使用以下命令安装所有这些:
apt-get install nginx git fcgiwrap apache2-utils unzip -y
安装完所有软件包后,您可以继续下一步 。创建 Git 存储库
接下来,您需要创建一个目录来存储 Git 存储库 。让我们在 Nginx Web 根目录中创建一个名为myrepo的目录:
mkdir /var/www/html/myrepo
接下来,将目录更改为myrepo并为用户创建另一个目录:cd /var/www/html/myrepo mkdir user1.git
接下来,导航到用户目录并使用以下命令初始化 Git 存储库:cd user1.git git --bare init
【git 怎么安装 Git安装教程】您将获得以下输出:Initialized empty Git repository in /var/www/html/myrepo/user1.git/
接下来,使用以下命令更新 Git 服务器信息:git update-server-info
接下来,使用以下命令更改 myrepo 的所有权并设置适当的权限:chown -R www-data:www-data /var/www/html/myrepo chmod -R 755 /var/www/html/myrepo
接下来,创建一个名为 user1 的用户并设置密码:htpasswd -c /var/www/html/myrepo/htpasswd user1
您可以设置密码,如下所示:New password: Re-type new password: Adding password for user user1
您可以使用以下命令检查您的密码:cat /var/www/html/myrepo/htpasswd
示例输出:user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1
配置 Nginx 以提供 Git 存储库接下来,您需要创建一个 Nginx 虚拟主机配置文件来为 Git 存储库提供服务 。
nano /etc/nginx/conf.d/git.conf
添加以下几行:server {listen 80;root /var/www/html/myrepo;# Add index.php to the list if you are using PHPindex index.html index.htm index.nginx-debian.html;server_name git.yourdomain.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/myrepo/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/myrepo;fastcgi_param REMOTE_USER $remote_user;fastcgi_param PATH_INFO $1;fastcgi_passunix:/var/run/fcgiwrap.socket;}}
完成后保存并关闭文件,然后验证 Nginx 是否存在任何语法错误:nginx -t
您将获得以下输出:nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重新启动 Nginx 服务以应用更改:systemctl restart nginx
您还可以使用以下命令检查 Nginx 状态:systemctl status nginx
您将获得以下输出:? nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2021-12-11 08:00:04 UTC; 2s agoDocs: man:nginx(8)Process: 144985 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Process: 144986 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Main PID: 144987 (nginx)Tasks: 2 (limit: 2341)Memory: 2.5MCPU: 42msCGroup: /system.slice/nginx.service??144987 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;??144988 nginx: worker processDec 11 08:00:04 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...Dec 11 08:00:04 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argumentDec 11 08:00:04 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
从客户端连接到 Git 存储库至此,Git HTTP服务器与Nginx搭建完成 。现在,是时候从客户端计算机连接它并进行测试了 。
首先,使用以下命令在客户端计算机上安装 Git 包:
apt-get install git -y
接下来,使用以下命令为您的项目创建一个目录:mkdir project
接下来,导航到您的项目目录并使用以下命令初始化 Git:cd projectgit init
接下来,使用您的电子邮件和用户名配置 Git:git config --global user.email " [email protected] " git config --global user.name "user1"
接下来,使用以下命令添加您的 Git HTTP 服务器:git remote add origin http: [email protected] /user1.git
接下来,创建一个名为 dev01 的目录并在其中添加一个文件:mkdir dev01echo "This is my first application" > dev01/file1
接下来,将您创建的目录和文件添加到 Git 存储库:git add .
接下来,使用以下命令提交更改:git commit -a -m "Add files and directories"
您将获得以下输出:[master (root-commit) 0299d83] Add files and directories 1 file changed, 1 insertion(+) create mode 100644 dev01/file1
接下来,使用以下命令将您的文件和目录上传到 HTTP Git 服务器:git push origin master
系统会要求您提供密码以访问 Git 服务器:Password for 'http:[email protected]':
连接后,您将获得以下输出:Counting objects: 4, done.Writing objects: 100% (4/4), 281 bytes | 281.00 KiB/s, done.Total 4 (delta 0), reused 0 (delta 0)To http://git.yourdomain.com/user1.git * [new branch]master -> master
您还可以使用以下命令直接从 Git 服务器下载您的存储库:git clone http: [email protected] /user1.git
您将获得以下输出:Cloning into 'user1'...Password for 'http:[email protected]': remote: Enumerating objects: 4, done.remote: Counting objects: 100% (4/4), done.remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0Unpacking objects: 100% (4/4), done.
结论在上面的指南中,您学习了如何在 Debian 11 上使用 Nginx 设置 HTTP Git 服务器,您现在可以在本地开发环境中实施此设置,并使用命令行管理和跟踪您的项目 。
- 酷派是什么牌子手机质量怎么样 酷派手机性价比怎么样
- 找房子怎么找啊 找这个房子
- 我的世界 仙人掌怎么种 我的世界仙人掌能种吗
- python安装matplotlib失败 matplotlib无法安装
- 如何判定二手车有没有调表,怎么查询二手车维修保养记录
- 青团一定要放粘米粉吗,青团没有粘米粉怎么办
- Excel怎么设置密码保护 excel怎么设置保护密码怎么设置
- 在学校撩妹第一句怎么打招呼,不知道怎么和女生接触看进来
- 如何将中国统计年鉴中的数据导出 中国统计年鉴数据怎么导出到excel表格
- 网络使用率是什么意思 网络使用率怎么算