共计 2095 个字符,预计需要花费 6 分钟才能阅读完成。
配置 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 实现反向代理和负载均衡的配置及优化 http://www.linuxidc.com/Linux/2013-11/92909.htm
Nginx 做负载均衡报:nginx: [emerg] could not build the types_hash http://www.linuxidc.com/Linux/2013-10/92063.htm
Nginx 负载均衡模块 ngx_http_upstream_module 详述 http://www.linuxidc.com/Linux/2013-10/91907.htm
Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器 http://www.linuxidc.com/Linux/2013-10/91824.htm
Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm
Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里