centos7 nginx 支持cgi
由于本人的代码使用git管理,代码浏览器使用的cgit。webserver为nginx,而cgit为c语言实现的cgi程序。为了在nginx下依然可以用cgit,所以有了这篇文章。
1、fcgiwrap的安装和配置
# install fcgi-devel
yum install fcgi-devel
# install fcgiwrap
# 由于centos源没有fcgiwrap,所以需要自行下载源码安装
git clone https://github.com/gnosek/fcgiwrap.git
cd ./fcgirwap
autoreconf -i
./configure
make
make install
# 配置fcgiwrap based systemd
cp systemd/* /usr/lib/sytemd/system/
# 根据自己需求修改fcgiwrap.server中一下内容,
ExecStart=/usr/sbin/fcgiwrap -s tcp:127.0.0.1:8082
User=nginx
Group=nginx
# 启动fcgiwrap
systemctl start fcgiwrap
2、nginx的配置
# 在/etc/nginx/conf.d/内增加自己的针对cgi程序的配置,配置如下
server {
listen 80;
server_name git.yourdoman.cn;
root /var/www/cgi-bin/cgit-data;
try_files $uri @cgit;
location / {
fastcgi_param SCRIPT_FILENAME /var/www/cgi-bin/cgit;
#fastcgi_index cgit;
fastcgi_param PATH_INFO $uri;
fastcgi_param QUERY_STRING $args;
fastcgi_param HTTP_HOST $server_name;
fastcgi_pass 127.0.0.1:8082;
include fastcgi_params;
}
}