配置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