fcgiwrap是一个简单的服务器,用于在FastCGI上运行CGI应用程序。我们可以用它来为nginx webserver提供干净的CGI支持。它是一个轻量级的服务器,具有零配置选项,可以使用同一个池来运行不同的站点。本文介绍了如何在Ubuntu 20.04上安装fcgiwrap。
CGI的意思是Common Gateway Interface,它是早期创建动态页面的一种方法。另一个很好的例子是告诉你的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>
四、编写你的第一个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)
测试一下。打开浏览器,输入网址:
https://你的域名/cgi-bin/hello.cgi
你可以用任何你想用的编程语言,如Perl或C语言编写CGI应用程序或脚本,乍一看,应用程序/脚本的CGI似乎很简单,很容易,但编写这种应用程序必须小心。
标签:cgi,bin,fcgiwrap,lib,sudo,Nginx,usr,Ubuntu From: https://www.cnblogs.com/kn-zheng/p/17480300.html