时间:2021-05-19
在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/; # 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//cgi-bin/hello_world.cgi
在浏览器打开对应脚本,即可看到已经配置成功! http:///cgi-bin/hello_world.cgi
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
漏洞描述:Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问http://
CGI脚本是什么?CGI脚本是怎样工作的?一个简单的例子我能用CGI脚本吗?你的服务器配置允许CGI脚本吗?你能编程吗?你应该用什么编程语言?你的服务器设置正确
CGI的英文全称为CommonGatewayInterface(公共网关接口),是Nginx和动态脚本程序的桥梁,Nginx通过FastCGI接口将动态请求发送
概述今天遇到一个问题,Ubuntu+Nginx+MySQL配置ThinkPHP的项目,做了一半发现,Nginx不支持ThinkPHP的PATH_INFO模式,百
thttpd简介thttpd是一个非常小巧的轻量级webserver,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,nginx需要支持cgi,可