如何在Ubuntu 20.04上为Nginx安装fcgiwrap

时间:2020-01-09 10:39:19  来源:igfitidea点击:

fcgiwrap是用于通过FastCGI运行CGI应用程序的简单服务器。
我们可以使用它为Nginx Web服务器提供干净的CGI支持。
它是具有零配置选项的轻型服务器,可以使用同一池运行不同的站点。
本教程说明如何在Ubuntu 20.04上安装fcgiwrap。

CGI表示通用网关接口,它是创建动态页面的一种早期方法。
另一个很好的例子是告诉您的Web服务器执行Unix程序等等。
本教程假定您已在Ubuntu Linux 20.04 LTS上安装并配置了Nginx服务器。

在Ubuntu 20.04上安装fcgiwrap

打开终端应用程序,然后执行以下命令以更新已安装的软件包,以确保Ubuntu 20.04的安全:

$ sudo apt update
$ sudo apt upgrade

要为Nginx安装fcgiwrap软件包,请在[nixmcd name = apt]的帮助下以root用户身份运行以下命令:

$ sudo apt install fcgiwrap

在Ubuntu 20.04上打开fcgiwrap服务

使用systemctl命令,如下所示:

$ sudo systemctl enable fcgiwrap
$ sudo systemctl start fcgiwrap
$ sudo systemctl status fcgiwrap

为Nginx配置fcgiwrap

现在,我们安装了fcgiwrap,是时候为FastCGI文件创建一个新配置,如下所示:

sudo nano /etc/nginx/fcgiwrap.conf

追加以下配置:

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	/usr/lib;
 
  # 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  /usr/lib$fastcgi_script_name;
}

编辑您的nginx.conf或虚拟域配置文件。
例如:

sudo nano /etc/nginx/nginx.conf
## OR ##
sudo nano /etc/nginx/sites-enabled/default

接下来,找到"服务器"部分,并添加以下指令:

## Trun on /cgi-bin/ support to run CGI apps ##
include /etc/nginx/fcgiwrap.conf;

保存并关闭文件。
重新加载或重启Nginx服务器:

$ sudo nginx -t
$ sudo nginx -s reload

编写第一个CGI脚本

使用FastCGI编写基本的CGI脚本非常简单。
但是,首先,我们必须使用mkdir命令在/usr/lib /下创建一个cgi-bin目录:

$ sudo mkdir -vp /usr/lib/cgi-bin/
`mkdir: created directory '/usr/lib/cgi-bin/'`

Bash中的Hello World CGI脚本

打开您选择的文本编辑器并创建以下文件:

sudo vi /usr/lib/cgi-bin/hello.cgi

追加以下bash代码:

#!/usr/bin/env bash
echo "Content-type: text/html"
echo ""
now="$(date)"
echo '<html><head><title>Hello World - CGI app</title></head>'
echo '<body>'
 
echo '<h2>Hello World!</h2>'
echo "Computer name : $HOSTNAME<br/>"
echo "The current date and time : ${now}<br/>"
echo '</body>'
echo '</html>'

使用chmod命令和chown命令在/usr/lib/cgi-bin/hello.cgi上设置可执行权限:

$ sudo chmod +x -v /usr/lib/cgi-bin/hello.cgi
`mode of '/usr/lib/cgi-bin/hello.cgi' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)`

测试一下。
打开一个网络浏览器,然后输入URL:

https://your-domain-here/cgi-bin/hello.cgi
## For instance ##
https://www.theitroad.local/cgi-bin/hello.cgi

您可以使用所需的任何编程语言(例如Perl或C)编写CGI应用程序或脚本。