<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[配置 Nginx 支持 CGI]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Thu, 13 May 2010 05:56:51 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	Nginx 不能直接执行外部可执行程序，如果要让 Nginx 支持 CGI，可以考虑安装 nginx-fcgi：<br/><br/><a href="http://www.nginx.eu/nginx-fcgi.html" target="_blank">http://www.nginx.eu/nginx-fcgi.html</a><br/><br/>当前版本为 nginx-fcgi-0.4.3，需要用到以下&nbsp;&nbsp;perl 库：<br/><br/><div class="code"><br/><br/>perl-FCGI<br/>perl-Getopt<br/>perl-IO<br/>perl-Socket<br/><br/></div><br/><br/>安装 perl-FCGI 、perl-FCGI-ProcManager 和 perl-IO-ALL：<br/><br/><div class="code"><br/><br/>wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz<br/>tar -zxf FCGI-0.67.tar.gz<br/>cd FCGI-0.67<br/>perl Makefile.PL<br/>make &amp;&amp; make install<br/>cd ..<br/><br/>wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.tar.gz<br/>tar -zxf FCGI-ProcManager-0.18.tar.gz<br/>cd FCGI-ProcManager-0.18<br/>perl Makefile.PL<br/>make &amp;&amp; make install<br/>cd ..<br/><br/>wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.39.tar.gz<br/>tar zxf IO-All-0.39.tar.gz<br/>cd IO-All-0.39<br/>perl Makefile.PL<br/>make &amp;&amp; make install<br/><br/><br/><br/></div><br/><br/>安装 nginx-fcgi 脚本：<br/><div class="code"><br/><br/>wget http://www.nginx.eu/nginx-fcgi/nginx-fcgi.txt<br/><br/>mv nginx-fcgi.txt /usr/sbin/nginx-fcgi<br/><br/>chmod +x /usr/sbin/nginx-fcgi<br/><br/><br/></div><br/><br/>如果不用 sudo 方式运行 nginx-fcgi，请注释掉 nginx-fcgi 脚本中的：<br/><br/><div class="code"><br/><br/>if ( $&gt; == &quot;0&quot; ) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &quot;&#92;n&#92;tERROR&#92;tRunning as a root!&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print &quot;&#92;tSuggested not to do so !!!&#92;n&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1;<br/>&#125;<br/><br/></div><br/><br/>启动 nginx-fcgi：<br/><div class="code"><br/><br/>nginx-fcgi -l /var/log/nginx/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock<br/>chown nginx:nginx /var/run/nginx-fcgi.sock<br/><br/><br/><br/></div><br/><br/>注意一定要为 socket 添加 nginx 帐户的权限，否则 cgi 会执行失败。<br/><br/>新建 nginx-fcgi 脚本指令配置，直接从 fastcgi_params 复制模板：<br/><br/><div class="code"><br/><br/>cp /etc/nginx/fastcgi_params /etc/nginx/nginx_fcgi_params<br/></div><br/><br/>去除尾部的：<br/><div class="code"><br/># PHP only, required if PHP was built with –enable-force-cgi-redirect<br/>fastcgi_param&nbsp;&nbsp;REDIRECT_STATUS&nbsp;&nbsp;&nbsp;&nbsp;200;<br/><br/><br/></div><br/><br/>新建示例 cgi 站点配置：<br/><br/><div class="code"><br/>server &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80;<br/>&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;test.local;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;location ~ ^/cgi-bin/.*&#92;.cgi$<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /work/www/test;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_index&nbsp;&nbsp;index.cgi;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_param&nbsp;&nbsp;SCRIPT_FILENAME&nbsp;&nbsp;&nbsp;&nbsp;$document_root$fastcgi_script_name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nginx_fcgi_params;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_read_timeout&nbsp;&nbsp;&nbsp;&nbsp;5m;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_pass&nbsp;&nbsp; unix:/var/run/nginx-fcgi.sock;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/><br/></div><br/><br/>重启nginx即可。<br/><div class="code"><br/>/usr/local/nginx/sbin/nginx -s reload<br/></div><br/><br/>添加系统<br/><div class="code"><br/>vi /etc/rc.d/rc.local<br/>增加：<br/>/usr/sbin/nginx-fcgi -l /var/log/nginx/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock<br/>chown www:www /var/run/nginx-fcgi.sock<br/></div><br/>Tags - <a href="http://www.dzhope.com/tags/nginx/" rel="tag">nginx</a> , <a href="http://www.dzhope.com/tags/cgi/" rel="tag">cgi</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 配置 Nginx 支持 CGI]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>