配置Nginx支持CGI
配置Nginx支持CGI
相信会特意看这篇文章的人对CGI是什么及其作用已经有了足够的了解,所以在这里不再赘述,直接开始配置。
需要一些perl模块的安装,个人习惯使用perl -MCPAN -e shell
install FCGI
Getopt
IO
Socket
FCGI-ProcManager
IO-ALL
……
安装FCGI-0.74.tar.gz包:
tar zxvf FCGI-0.74.tar.gz
cd FCGI-0.74
perl Makefile.PL
make && make install
安装FCGI-ProcManager-0.24.tar.gz包:
tar zxvf FCGI-ProcManager-0.24.tar.gz
cd FCGI-ProcManager-0.24
perl Makefile.PL
make && make install
安装IO-All-0.39.tar.gz包:
tar zxvf IO-All-0.39.tar.gz
cd IO-All-0.39
perl Makefile.PL
make && make install
安装Nginx-fcgi脚本:
mv /usr/sbin/nginx-fcgi.txt/usr/sbin/nginx-fcgi
chmod +x /usr/sbin/nginx-fcgi
在Nginx配置文件中添加如下内容:
cat nginx.conf
location ~ ^/cgi-bin/.*\.cgi$
{
root /work/www/test;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include nginx_fcgi_params;
fastcgi_read_timeout 5m;
fastcgi_pass unix:/var/run/nginx-fcgi.sock;
}
nginx-fcgi -l /var/log/nginx/nginx-fcgi.log-pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock
启动报错,信息如下:
Can't open file'/var/log/nginx/nginx-fcgi.log' for append:
没有那个文件或目录 at /usr/local/nginx/sbin/nginx-fcgi line 43
解决办法:
mkdir -p /var/log/nginx
chown nobody:nobody /var/log/nginx
再次启动,ok
chown nginx.nginx /var/run/nginx-fcgi.sock
chmod 755 /var/run/nginx-fcgi.sock
重启nginx
新建 nginx-fcgi 脚本指令配置,直接从fastcgi_params复制模板,网上有些文档说从/etc/nginx/fastcgi_params拷过来,我部署的时候没有在这个位置找到这个文档,而且没有/etc/nginx这个文件夹,可能是因为版本和Nginx安装方式不同的原因吧,我新建了这个文件夹,并找到了/usr/local/nginx/conf/fastcgi_params.default这个脚本指令文件:
cp /usr/local/nginx/conf/fastcgi_params.default/etc/nginx/nginx_fcgi_params
到这里其实已经完成工作了,但我现在的公司需要在网页上能够显示数学公式,所以,以下两步是添加一个名为mimetex.cgi(可以在网上下载)的文件到/web/www/cgi-bin(如果没有此目录,请手动创建)下,有了这个文件系统才能将用户提交的“文本格式的公式”转换成“真正的公式”
mkdir /etc/nginx
cd /web/www/cgi-bin/
chmod +x mimetex.cgi
推荐阅读:
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里