原创

在linux centos 7 服务器上安装 fcgiwrap spawn nginx 处理自己的 CGI脚本

温馨提示:
本文最后更新于 2025年07月10日,已超过 22 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

linux centos 7 服务器上安装 fcgiwrap spawn nginx 处理自己的 CGI脚本

1

踩坑 注意

centos7 上用yum 下载执行失败!

yum -y install autoconf automake libtool fcgi fcgi-devel spawn-fcgi

centos7 这样安装是行不通的!

否则在执行 systemctl start fcgiwrap 会报错的!!也就是无法正常启动!!

2 正确的安装姿势是采用 手动安装的方式

2.1先下载 Nginx+fcgiwrap+Git 

git 拉取太慢了,估计给墙了。

git clone git://github.com/gnosek/fcgiwrap.git

直接在网盘下载Nginx+fcgiwrap+Git服务器配置.zip

下载链接

注意 启动脚本要放到 /etc/init.d/fcgiwrap 这个文件里(不是文件夹)

最后将圈起来的文件上传到 linux centos7 中 准备安装

2.2 安装 fcgiwrap

  windows中打开 fcgiwrap-master 文件夹 找到 README.rst 里面记录了 安装步骤

打开后:

关键安装命令:

autoreconf -i

    ./configure

    make

make install

linux中进入到 fcgiwrap-master 文件夹 顺序执行 上述命令即可完成安装fcgiwrap

2.3 安装 spawn

windows中找到  README.md

打开后


关键的执行命令

    ./autogen.sh

    ./configure

    make

make install

linux中进入到 spawn-fcgi-master 文件夹 顺序执行 上述命令即可完成安装spawn

2.4 配置开机脚本

vi /etc/init.d/fcgiwrap

在复制粘贴 fcgiwrap.sh 之前需要做一些处理

fcgiwrap.sh 脚本


FCGI_USER=www

FCGI_GROUP=www

要换成自己的用户和用户组。不要用root:root fcgi无法以root 启动

DEAMON 要替换为 /usr/local/bin/spawn-fcgi

否则执行命令 systemctl start fcgiwrap 会报错

换成自己的用户和用户组之前一定要创建好!!

此处以 cgi 用户举例

创建名为cgi的用户组

groupadd cgi

创建名为cgi的用户,并将其加入cgi

useradd -g cgi cgi

fcgiwrap.sh 中 替换

FCGI_USER=cgi

FCGI_GROUP=cgi

DEAMON=/usr/local/bin/spawn-fcgi

最后将 fcgiwrap.sh 中的全部内容 复制到 vi /etc/init.d/fcgiwrap wq保存退出

注意 fcgiwrap 一定要赋给执行权限  可以执行 chmod 777 fcgiwrap偷懒的做法

最后执行命令

systemctl start fcgiwrap  启动服务

chkconfig fcgiwrap on 设置服务开机自启

可以执行 systemctl status fcgiwrap 查看启动状态


显示 running 就证明启动成功了!! 若是有报错也会显示在这里!!


--------------CGI脚本有很多这里以执行shell脚本为例------------------

3 修改 nginx 配置 (仅供参考)

     # 仅允许访问 .sh 后缀的脚本

     location ~ \.sh$ {

         # 限制访问来源(根据实际需求调整)

        # allow 192.168.1.0/24;  # 允许内网访问

        # deny all;

        

         # 安全配置

         fastcgi_pass unix:/var/run/fcgiwrap.socket;

         fastcgi_param SCRIPT_FILENAME /usr/local$fastcgi_script_name;

         fastcgi_param PATH_INFO $fastcgi_script_name;

        

         # 禁用危险环境变量 这条指令用于设置 PHP open_basedir 限制,这可以增强服务器的安全性

         # fastcgi_param PHP_ADMIN_VALUE "open_basedir=/usr/local/:/tmp/";

        

         # 包含默认 FastCGI 参数

         include fastcgi_params;

        # 增加超时设置

     fastcgi_connect_timeout 60;

     fastcgi_send_timeout 180;

     fastcgi_read_timeout 180;

     fastcgi_buffer_size 128k;

     fastcgi_buffers 256 4k;

     fastcgi_busy_buffers_size 256k;

     fastcgi_temp_file_write_size 256k;

        }

nginx 配置好了后 还是不能正常访问 那是因为 启动nginx 的和 不是 fastcgi指定的的 cgi 用户。。

方法一  将启动nginx的用户nginx (举例)加入到cgi用户组中(此方法对root无效)

nginx 加入到cgi 用户组 sudo usermod -a -G cgi nginx

方法二  执行 chmod 777 /var/run/fcgiwrap.socket

若是有其他问题 请自行排查 nginx 错误日志。

4执行

 将要执行的shell 脚本 放到  /usr/local

 注意 这个位置可以修改  修改位置在nginx配置中  fastcgi_param SCRIPT_FILENAME /usr/local$fastcgi_script_name; 路径在这里修改;

 要将 执行的脚本 比如 test.sh  转移给  fastcgi指定的的 cgi 用户

 chown cgi:cgi test.sh

 同时要有可执行权限

chmod ug+x test.sh

     或者

chmod 777 test.sh  偷懒的做法

5 写入test.sh 内容

test.sh 写入如下测试内容

#!/bin/bash

echo "Content-type: text/html"

echo ""

echo "<html><body><h1>66666</h1></body></html>"

6 测试

在浏览器 输入  192.168.1.1:80/test.sh

就会返回  66666

证明执行成功!!!

完结撒花 ✿✿ヽ(°▽°)ノ✿



参考连接

https://blog.csdn.net/weixin_34115824/article/details/91940413?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-91940413-blog-109363138.235^v43^pc_blog_bottom_relevance_base1&spm=1001.2101.3001.4242.2&utm_relevant_index=3

https://download.csdn.net/download/tendarouter/88598939?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522b4ea554bd6ddc85ba08e3e069865b5a1%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fdownload.%2522%257D&request_id=b4ea554bd6ddc85ba08e3e069865b5a1&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~download~first_rank_ecpm_v1~rank_v31_ecpm-1-88598939-null-null.269^v2^control&utm_term=Nginx%2Bfcgiwrap%2BGit%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E5%8C%85%E5%90%ABfcgiwrap%E5%92%8Cspawn-fcgi%E6%BA%90%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4451.2

https://blog.csdn.net/huliwho/article/details/75088333

正文到此结束
本文目录