在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


相关推荐: php打包exe后无法访问网络共享_共享权限设置方法【教程】  JavaScript如何实现音频处理_Web Audio API如何工作?  奇安信“盘古石”团队突破 iOS 26.1 提权  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何处理CORS跨域请求?(配置示例)  网易LOFTER官网链接 老福特网页版登录地址  青岛网站建设如何选择本地服务器?  PHP正则匹配日期和时间(时间戳转换)的实例代码  利用vue写todolist单页应用  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何用AWS免费套餐快速搭建高效网站?  如何快速搭建高效香港服务器网站?  如何实现建站之星域名转发设置?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Linux安全能力提升路径_长期防护思维说明【指导】  网站页面设计需要考虑到这些问题  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何基于云服务器快速搭建网站及云盘系统?  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  ,南京靠谱的征婚网站?  详解MySQL数据库的安装与密码配置  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  文字头像制作网站推荐软件,醒图能自动配文字吗?  郑州企业网站制作公司,郑州招聘网站有哪些?  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel如何实现本地化和多语言支持?(i18n教程)  js实现获取鼠标当前的位置  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel中的Facade(门面)到底是什么原理  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Swift开发中switch语句值绑定模式  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  企业网站制作这些问题要关注