CentOS Gitweb Nginx 私服搭建
参考:
http://blog.csdn.net/lifetragedy/article/details/51658266
安装软件:
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install -y git gitweb spawn-fcgi fcgi-devel fcgi
Gitweb,仅支持 git clone gituser@hostname:/repositories这样的协议 我们需要让git支持http协议的图形化的界面
spawn-fcgi,因为nginx默认是不支持cgi的,而gitweb是用cgi写的,因此我们才安装fastcgi,而fastcgi又要通过spawn-fcgi来启动
安装fcgiwrap
wget https://codeload.github.com/gnosek/fcgiwrap/legacy.tar.gz/master
tar -xvf gnosek-fcgiwrap-1.1.0-18-g99c942c.tar.gz
cd gnosek-fcgiwrap-99c942c/
autoreconf -i
./configure --prefix=/你的安装目录/fcgiwrap
make && make install
ls -l /etc/init.d/ |grep spawn-fcgi
/etc/init.d 目录下有一个spawn-fcgi程序
/usr/bin 目录下有一个spawn-fcgi程序
/var/www/git目录下是gitweb所有的文件(网页版git)
/etc/目录下有一个gitweb.conf文件
/etc/sysconfig/目录下有一个spawn-fcgi文件
修改/etc/gitweb.conf文件
$projectroot = "/home/git/repositories";
@git_base_url_list= ("git://192.168.0.101", "http://192.168.0.101:81");
$git_temp = "/tmp";
$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;
@stylesheets = ("static/gitweb.css");
$javascript = "static/gitweb.js";
$logo = "static/git-logo.png";
$favicon = "static/git-favicon.png";
@diff_opts = ();
$feature{pathinfo}{default} = [1];
$feature{'highlight'}{'default'} = [1];
修改/etc/sysconfig/spawn-fcgi文件
FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0700"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
启动spawn-fcgi
chkconfig --levels 2345 spawn-fcgi on
/etc/init.d/spawn-fcgi start
把spawn-fcgi设为开机启动,并启动该服务,该服务成功启动后会在:
/var/run目录下生成一个fcgiwrap.socket文件。
使用root用户创建git用户
useradd -d 指定工作目录/home/git -g 用户组git -m 用户名git
设置密码
passwd git
more /etc/passwd
创建目录
mkdir gitrepo
授权
chmod 750 工作目录/home/git
chown -R 用户名.用户组 工作目录/home/git/gitrepo
su git
cd
生成.ssh
ssh-keygen
cd 工作目录/home/git
touch .ssh/authorized_keys
cd gitrepo
创建连接文件
ln -s /var/www/git/gitweb.cgi
ln -s /var/www/git/static
初始化仓库
git init --bare 仓库名称.git
chmod -R 775 仓库名称.git
cd 仓库名称.git
客户端通过ECLIPSE的JGIT连上GIT的远程服务后会发送一个git-upload指令。
同时服务端会回一个git-receive给到客户端做“接收”请求的准备,但是git服务默认对于这个receive的值为false,因此如果你没有做特殊处理后,在eclipse连上git后会发生一个can not find git-receive这样的错误,解决办法是:
su git
cd /home/git/repositories/hello.git
git config --file config http.receivepack true
nginx配置(权限参考 Nginx添加htpasswd认证配置 )
server {
error_log /nginx/logs/git.error.log;
access_log /nginx/logs/git.access.log;
listen 81;
server_name 域名;
index gitweb.cgi;
root /home/git/gitrepo;
auth_basic "Authorized users only";
auth_basic_user_file /home/conf/git.auth.conf;
location ~ \.(cgi|pl).*$ {
gzip off;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /var/www/git/gitweb.cgi;
fastcgi_param SCRIPT_NAME gitweb.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
root /home/git/gitrepo;
}
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
root /home/git/gitrepo;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL true;
fastcgi_param GIT_PROJECT_ROOT /home/git/gitrepo;
fastcgi_param PATH_INFO $uri;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
try_files $uri @gitweb;
location @gitweb {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /var/www/git/gitweb.cgi;
fastcgi_param PATH_INFO $uri;
fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
include fastcgi_params;
}
}
客户端操作
git init
git clone git@192.168.1.101:/home/git/repositories/hello.git (会使用到git用户的密码)
touch readme #新建一个readme文本文件
vi readme #随便在此文件中写点什么然后保存退出即可
git add . 代表把当前目录内所有东西进行远程推送
git commit -a -m “init helloworld“ #代表commit所有之前add过的东东,并且带上commit时的注释
git remote add origin git@192.168.1.101:/home/git/repositories/hello.git #建立远程GIT连接
git push origin master #正式推送
修改git用户不可登录:
vi /etc/passwd
git:x:500:500::/home/git:/bin/bash ##此行注释掉
git:x:500:500:git version control:/home/git:/usr/bin/git-shell
相关推荐
CentOS+Nginx环境搭建教程.pdf
离线安装Nginx及其依赖库虽然增加了安装过程的复杂性,但通过提前准备和正确操作,可以在无网络环境下成功搭建起可靠的Web服务器环境。在实际工作中,对于那些对网络连接有限制或者网络不稳定的数据中心,这种方法尤...
### CentOS 下 Nginx 安装操作文档 #### 概述 本文档旨在提供一份详细的指导,帮助用户在 CentOS 系统中成功安装 Nginx 1.11.4 版本及其所需依赖包。Nginx 是一款高性能的 HTTP 和反向代理 Web 服务器,同时也是一...
在本文中,我们将深入探讨如何在CentOS 6.3操作系统上安装Nginx并用其搭建文件服务器。Nginx是一款高性能的Web服务器和反向代理服务器,因其高效的并发处理能力和稳定性而广受欢迎。首先,让我们从安装Nginx开始。 ...
### CentOS安装Nginx详细配置知识点 #### 一、安装准备 在开始部署Nginx之前,需要确保系统中已安装必要的开发工具和依赖库。 ##### 1. 安装GCC - **简介**:GCC (GNU Compiler Collection) 是一个用于编译多种...
在Linux环境中,CentOS 7.6是一个广泛使用的操作系统,而Nginx是一款高性能的Web服务器和反向代理服务器,常用于网站托管和负载均衡。本文将详细介绍如何在CentOS 7.6上进行离线安装Nginx,这对于网络环境不稳定或者...
CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本,Docker version 18.06.1-ce,docker-compose version 1.22.0
在完全无互联网连接的情况下,离线安装nginx。 nginx版本号:nginx-1.20.1-2.el7.x86_64 食用方法: 1.解压 2.进入解压目录 3.rpm安装全部 4.安装完成
在阿里云服务器上搭建一个基于CentOS的Web服务环境,通常是为了部署Python应用程序,例如使用Flask框架构建的Web服务。本教程将详细介绍如何在阿里云服务器上配置一个CentOS系统,然后安装Nginx作为反向代理服务器,...
在CentOS7环境中,对Nginx进行版本升级是一个重要的任务,这可能是因为新版本提供了更多的功能、性能优化或安全修复。本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的...
本篇内容主要围绕如何在CentOS 7系统上,将Nginx 1.12.2平滑升级至1.13.3版本进行讲解。 首先,要确认当前Nginx的版本。在命令行中输入`nginx -v`可以查看已安装的Nginx版本。这一步骤有助于了解当前的运行状态和...
在Linux系统中,CentOS 7是一个非常流行的服务器操作系统,而Nginx是一款高性能的Web服务器和反向代理服务器,广泛用于网站托管和负载均衡。本压缩包"centOS7离线安装nginx依赖包.zip"显然是为了帮助用户在没有网络...
### 在CentOS下使用Nexus搭建Maven私库的安装教程 #### 一、引言 随着企业级项目规模的不断扩大和技术栈的日益复杂,如何有效地管理项目中的依赖成为了一个重要的问题。Maven作为Java生态中最流行的构建工具之一,...
CentOS 7 服务器防火墙...我们已经成功地配置了 CentOS 7 服务器的防火墙规则,使 Nginx 服务器对所有 IP 可见,Tomcat 服务器的 8080 端口只对 Nginx 服务器可见,MySQL 服务器的 3306 端口只对 Tomcat 服务器可见。
在 Linux 系统中,尤其是 CentOS 7,Nginx 被广泛用于网站托管和负载均衡。本资源提供的是 Nginx 的 1.24.0 版本,它是一个预编译好的二进制包,无需进行编译安装,简化了部署流程。 **安装与部署** 1. 首先,将...
centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...
在本文中,我们将详细介绍如何在CentOS7操作系统上使用Nexus3搭建Maven私有仓库。首先,确保系统已经安装了Java Development Kit (JDK) 8和Maven3。安装这两个组件的具体步骤可以通过搜索引擎获取。 一、所需环境 ...
在这个主题中,我们主要关注如何在CentOS 8操作系统上安装Nginx 1.20.1版本以及配置Nginx以支持HTTPS服务。以下是详细的步骤和相关知识点: 首先,我们需要确保CentOS 8系统已经更新到最新状态,通过运行以下命令:...
### CentOS系统下Nginx服务器的安装步骤及常见问题解决 #### 一、概述 本文档详细介绍了在CentOS操作系统中安装Nginx服务器的具体步骤,并针对安装过程中可能遇到的几个常见错误给出了相应的解决方案。Nginx是一款...
在本配置文档中,我们将详细讨论如何在 CentOS 系统上搭建一个基于 Nginx、FastCGI 和 MySQL 的服务器环境。这个配置过程涉及到多个步骤,包括安装必要的软件包、配置 Nginx 以及整合 PHP 和 MySQL。 首先,我们...