侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

git + nginx + fcgiwrap + spawn-fcgi git的http服务器

2023-12-10 星期日 / 0 评论 / 0 点赞 / 105 阅读 / 2958 字

环境Centos/Redhat 6安装好 git安装 fcgiwrap参考 https://github.com/gnosek/fcgiwrap安装 spawn-fcgi参考 https://gith

环境

  • Centos/Redhat 6
  • 安装好 git

安装 fcgiwrap

  • 参考 https://github.com/gnosek/fcgiwrap

安装 spawn-fcgi

  • 参考 https://github.com/lighttpd/spawn-fcgi

编辑 spawn-fcgi/sbin/fcgiwrap 开机启动脚本:

#! /bin/shDESC="fcgiwrap daemon"DEAMON=/opt/spawn-fcgi/bin/spawn-fcgiPIDFILE=/tmp/spawn-fcgi.pid# fcgiwrap socketFCGI_SOCKET=/tmp/fcgiwrap.socket# fcgiwrap 可执行文件FCGI_PROGRAM=/opt/fcgiwrap/sbin/fcgiwrap# fcgiwrap 执行的用户和用户组FCGI_USER=nobodyFCGI_GROUP=nobodyFCGI_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

启动 fcgiwrap

chmod 0755 /opt/spawn-fcgi/sbin/fcgiwrap/opt/spawn-fcgi/sbin/fcgiwrap start

安装 nginx

  • 参考 http://nginx.org/en/download.html,启动 nginx

在 nginx 前端目录 html 下创建 git 仓库目录 nginx/html/git/

mkdir /opt/nginx/html/git/chown nobody.nobody /opt/nginx/html/git/ -R

配置 nginx 的 git 服务

# 在 server section 中添加 gitlocation ~ /git(/.*) {    gzip off;    fastcgi_pass  unix:/tmp/fcgiwrap.socket;    include fastcgi_params;    fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend;    fastcgi_param GIT_HTTP_EXPORT_ALL "";    fastcgi_param GIT_PROJECT_ROOT /opt/nginx/html/git;    fastcgi_param PATH_INFO $1;    fastcgi_param REMOTE_USER $remote_user;    client_max_body_size 500m;}

重新加载配置文件

/opt/nginx/sbin/nginx -s reload

测试,在仓库目录下新建一个空repo

cd /opt/nginx/html/git/git init --bare test-repochown nobody.nobody test-repo -Rcd test-repogit config http.reveivepack true

完成

  • 在另一台服务器中可以顺利的进行 clone、push 及 pull 等操作。

广告 广告

评论区