1、编译安装fcgiwrap
git clone git://github.com/gnosek/fcgiwrap.gitcd fcgiwrapautoreconf -i./configuremakemake install
2、配置fcgiwrap开机脚本
vim /etc/init.d/fcgiwrap
#! /bin/sh# chkconfig: 2345 55 25DESC="fcgiwrap daemon"DEAMON=/usr/bin/spawn-fcgiPIDFILE=/var/run/spawn-fcgi.pidFCGI_SOCKET=/var/run/fcgiwrap.socketFCGI_PROGRAM=/usr/local/sbin/fcgiwrapFCGI_USER=wwwFCGI_GROUP=wwwFCGI_EXTRA_OPTIONS="-M 0770"OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P $PIDFILE -- $FCGI_PROGRAM"do_start() { $DEAMON $OPTIONS || echo -n "$DESC already running"}do_stop() { kill -INT `cat $PIDFILE` || echo -n "$DESC not running"}case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 3 ;;esacexit 0
增加执行权限并开启
chmod +x fcgiwrapchkconfig fcgiwrap on
添加git的fastcgi配置
vim /path/to/nginx/conf/fastcgi_params_git
fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param REQUEST_URI $request_uri;fastcgi_param DOCUMENT_URI $document_uri;fastcgi_param DOCUMENT_ROOT $document_root;fastcgi_param SERVER_PROTOCOL $server_protocol;fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;fastcgi_param REMOTE_ADDR $remote_addr;fastcgi_param REMOTE_PORT $remote_port;fastcgi_param SERVER_ADDR $server_addr;fastcgi_param SERVER_PORT $server_port;fastcgi_param SERVER_NAME $server_name;fastcgi_param REMOTE_USER $remote_user;# required if PHP was built with --enable-force-cgi-redirectfastcgi_param REDIRECT_STATUS 200;
添加git server的nginx配置
server { listen 80; server_name mydevserver; access_log /var/log/nginx/dev.access.log; error_log /var/log/nginx/dev.error.log; location / { root /var/repos; } location ~ /git(/.*) { gzip off; root /usr/lib/git-core; fastcgi_pass unix:/var/run/fcgiwrap.socket; include fastcgi_params_git; fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend; fastcgi_param DOCUMENT_ROOT /usr/libexec/git-core/; fastcgi_param SCRIPT_NAME git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/repos; fastcgi_param PATH_INFO $1; #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; }}
注意
git-http-backend
路径
附:
1、 Cannot access URL错误
error: Cannot access URL http://www.example.com/git/projects/example/, return code 22
仓库下:
git config http.receivepack true
- 安装编译
fcgiwrap
时
configure: error: FastCGI library is missing
安装fcgi-devel
yum install fcgi-devel -y