CentOS服务器上搭建GitWeb
(1).参考文献
官网在线教程:https://git-scm.com/book/zh/v2
官方网站:https://git-scm.com/
(2).实验环境
2核2G CentOS7.6.1810
可以参考一下文档,将git安装好,并使用HTTP协议完成环境的相关配置:
Linux服务器上安装git(运维向)
(3).搭建GitWeb
如果你对项目有读写权限或只读权限,你可能需要建立起一个基于网页的简易查看器。 Git 提供了一个叫做 GitWeb 的 CGI 脚本来做这项工作。
如果你现在想为你的团队或你托管的开源项目持续的运行这个页面,你需要通过普通的 Web 服务器来设置 CGI 脚本。 一些 Linux 发行版的软件库有 gitweb
包,可以通过 apt
或 dnf
或 yum 来安装,其中就包含CentOS7。
1)yum安装并配置
yum或dnf安装gitweb,并修改配置文件:
1 2 3 4 5 | [root@VM-0-17-centos ~]# yum -y install gitweb [root@VM-0-17-centos ~]# vim /etc/gitweb.conf $projectroot = "/srv/git" ; $git_temp = "/tmp" ; $git_http_backend = "/usr/libexec/git-core/git-http-backend" ; |
接着修改Apache的配置文件,我这里在/etc/httpd/conf.d/目录下新增一个gitweb.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@VM-0-17-centos ~]# vim /etc/httpd/conf.d/gitweb.conf Listen 18989 <VirtualHost *:18989> ServerName [服务器地址或域名] #将/var/www/gitweb作为根目录,这里也可以是/var/www/git DocumentRoot /usr/share/gitweb #匹配日志,这里也可以是/var/www/git <Directory /usr/share/gitweb> #ExecCGI:允许在该目录中执行CGI脚本 #FollowSymLinks: 允许在该目录中访问符号链接所指向的文件或目录 #SymLinksIfOwnerMatch: 在目标文件和符号链接的所有者匹配时才允许跟随符号链接 Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch #允许在该目录中使用.htaccess文件来覆盖主配置文件中的指令 AllowOverride All #先处理allow规则,再处理deny规则 order allow,deny #允许所有用户访问该目录 Allow from all #将文件名为cgi-script的文件识别为CGI文件 AddHandler cgi-script cgi #设置gitweb.cgi为该目录的首页 DirectoryIndex gitweb.cgi </Directory> </VirtualHost> |
使用Windows浏览器打开,进行测试,如下图:
2)源码安装并配置
获取GIt的源代码,它包含了GitWeb,并可以自动生成自定义的CGI脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@VM-0-17-centos ~]# git clone git: //git.kernel.org/pub/scm/git/git.git Cloning into 'git' ... remote: Enumerating objects: 376771, done. remote: Total 376771 (delta 0), reused 0 (delta 0), pack-reused 376771 Receiving objects: 100% (376771/376771), 123.30 MiB | 532.00 KiB/s, done. Resolving deltas: 100% (284363/284363), done. Checking connectivity... done. [root@VM-0-17-centos ~]# cd git [root@VM-0-17-centos git]# make GITWEB_PROJECTROOT= "/srv/git" prefix=/usr gitweb #GITWEB_PROJECTROOT指定git版本库位置 GIT_VERSION = 2.47.0.72.gef8ce8f GEN gitweb/gitweb.cgi GEN gitweb/ static /gitweb.js [root@VM-0-17-centos git]# cp -Rf gitweb / var /www/ |
接着修改Apache的配置文件,我这里在/etc/httpd/conf.d/目录下新增一个gitweb.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [root@VM-0-17-centos git]# vim /etc/httpd/conf.d/gitweb.conf Listen 18989 <VirtualHost *:18989> ServerName [服务器IP地址或域名] #将/var/www/gitweb作为根目录 DocumentRoot / var /www/gitweb #匹配日志 <Directory / var /www/gitweb> #ExecCGI:允许在该目录中执行CGI脚本 #FollowSymLinks: 允许在该目录中访问符号链接所指向的文件或目录 #SymLinksIfOwnerMatch: 在目标文件和符号链接的所有者匹配时才允许跟随符号链接 Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch #允许在该目录中使用.htaccess文件来覆盖主配置文件中的指令 AllowOverride All #先处理allow规则,再处理deny规则 order allow,deny #允许所有用户访问该目录 Allow from all #将文件名为cgi-script的文件识别为CGI文件 AddHandler cgi-script cgi #设置gitweb.cgi为该目录的首页 DirectoryIndex gitweb.cgi </Directory> </VirtualHost> [root@VM-0-17-centos git]# systemctl restart httpd.service |
使用Windows浏览器打开,进行测试,如下图:
(4).结尾
后续使用请根据实际情况修改配置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
2019-10-22 shell中的shift左移参数命令