在ubuntu下为nginx配置支持cgi脚本的方案

发布时间 - 2026-01-10 23:12:41    点击率:

在nginx下支持cgi脚本于支持node类似的,只要在nginx直接做个转发,转发到对应的cgi套接字就好。

使用Fcgiwrap

Fcgiqwrap是另外一个CGI封装库,跟Simple CGI类似。

安装fcgiwrap

apt-get install fcgiwrap

安装以后fcgiwrap默认已经启动,对应的套接字是 /var/run/fcgiwrap.socket 。如果没有启动,使用 /etc/init.d/fcgiwrap 手动启动。

配置nginx的vhost文件

在要支持cgi脚本的路径下,添加对应的server配置。比如所有的cgi都在cgi-bin路径下:

server {
[...]
  location /cgi-bin/ {
   # Disable gzip (it makes scripts feel slower since they have to complete
   # before getting gzipped)
   gzip off;
   # Set the root to /usr/lib (inside this location this means that we are
   # giving access to the files under /usr/lib/cgi-bin)
   root /var/www/www.example.com;
   # Fastcgi socket
   fastcgi_pass unix:/var/run/fcgiwrap.socket;
   # Fastcgi parameters, include the standard ones
   include /etc/nginx/fastcgi_params;
   # Adjust non standard parameters (SCRIPT_FILENAME)
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
[...]
}

重新加载nginx:

nginx -s reload

测试

在cgi-bin下创建hello-world.cgi

#!/usr/bin/perl -w
   # Tell perl to send a html header.
   # So your browser gets the output
   # rather then <stdout>(command line
   # on the server.)
print "Content-type: text/html\n\n";
   # print your basic html tags.
   # and the content of them.
print "<html><head><title>Hello World!! </title></head>\n";
print "<body><h1>Hello world</h1></body></html>\n";

设置执行权限

chmod 755 /var/www/www.example.com/cgi-bin/hello_world.cgi

在浏览器打开对应脚本,即可看到已经配置成功! http://www.example.com/cgi-bin/hello_world.cgi


# nginx  # cgi  # 配置  # php  # ubuntu  # nginx启动脚本  # shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库  # Apache Nginx 禁止目录执行PHP脚本文件的方法  # 详解Nginx SSL快速双向认证配置(脚本)  # 使用shell脚本对Nginx日志进行切分的示例代码  # nginx源码分析configure脚本详解  # Nginx中使用Lua脚本配置示例  # PHP脚本监控Nginx 502错误并自动重启php-fpm  # Nginx和PHP-FPM的启动、重启、停止脚本分享  # Linux下创建nginx脚本-start、stop、reload…  # shell脚本之nginx自动化脚本  # 都在  # 就好  # 如果没有  # 做个  # 另外一个  # 加载  # 只要在  # location  # gzip  # Disable  # plain  # pre  # slower  # brush  # class  # root  # Set  # usr  # means  # lib 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端建站如何打造兼具美学与转化的品牌官网?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  如何在云指建站中生成FTP站点?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何在云主机快速搭建网站站点?  Laravel如何创建自定义Artisan命令?(代码示例)  轻松掌握MySQL函数中的last_insert_id()  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel如何生成URL和重定向?(路由助手函数)  大连 网站制作,大连天途有线官网?  如何快速生成橙子建站落地页链接?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何快速搭建高效可靠的建站解决方案?  详解Android图表 MPAndroidChart折线图  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  简单实现jsp分页  LinuxShell函数封装方法_脚本复用设计思路【教程】  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  如何在腾讯云免费申请建站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  JavaScript中的标签模板是什么_它如何扩展字符串功能  lovemo网页版地址 lovemo官网手机登录  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  PHP 500报错的快速解决方法  如何用狗爹虚拟主机快速搭建网站?  C语言设计一个闪闪的圣诞树  php结合redis实现高并发下的抢购、秒杀功能的实例  如何登录建站主机?访问步骤全解析  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Laravel如何使用Collections进行数据处理?(实用方法示例)  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel怎么使用artisan命令缓存配置和视图  Internet Explorer官网直接进入 IE浏览器在线体验版网址  详解jQuery停止动画——stop()方法的使用  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  ,交易猫的商品怎么发布到网站上去?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  JavaScript如何实现继承_有哪些常用方法