<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Big toy for boy! &#187; php-5.2.10</title>
	<atom:link href="http://bigtoy4boy.com/blog/tag/php-5-2-10/feed/" rel="self" type="application/rss+xml" />
	<link>http://bigtoy4boy.com/blog</link>
	<description>一个有关一些个人兴趣爱好的博客</description>
	<lastBuildDate>Thu, 10 Jun 2010 02:33:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>php-5.2.10 fpm编译方法</title>
		<link>http://bigtoy4boy.com/blog/2009/06/how-to-compile-php-5-2-10-with-fpm/</link>
		<comments>http://bigtoy4boy.com/blog/2009/06/how-to-compile-php-5-2-10-with-fpm/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 05:41:44 +0000</pubDate>
		<dc:creator>羽高</dc:creator>
				<category><![CDATA[杂项]]></category>
		<category><![CDATA[php-5.2.10]]></category>
		<category><![CDATA[php-fpm]]></category>

		<guid isPermaLink="false">http://bigtoy4boy.com/blog/?p=272</guid>
		<description><![CDATA[php 5.2.10发布了，喜欢用fpm的朋友又要头痛怎么样打patch了，因为Andrei去忙他更感兴趣的项目去了，最新版本fpm一直维持在0.6.10针对php 5.2.8的版本上。下面介绍如何使用那个patch来升级php 5.2.10
首先解压php 5.2.10的压缩包到一个目录，然后执行
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz &#124; patch -d php-5.2.10 -p1
会输出一些错误，可以忽略这些错误，然后修改php-5.2.10/sapi/cgi/fastcgi.c文件，找到下面的代码，将下面“-”号开头的代码删除。
         if (!tcp) {
            chmod(path, 0777);
-       } else {
-           [...]]]></description>
			<content:encoded><![CDATA[<p>php 5.2.10发布了，喜欢用fpm的朋友又要头痛怎么样打patch了，因为Andrei去忙他更感兴趣的项目去了，最新版本fpm一直维持在0.6.10针对php 5.2.8的版本上。下面介绍如何使用那个patch来升级php 5.2.10</p>
<p>首先解压php 5.2.10的压缩包到一个目录，然后执行<br />
<code>gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.10 -p1</code><br />
会输出一些错误，可以忽略这些错误，然后修改php-5.2.10/sapi/cgi/fastcgi.c文件，找到下面的代码，将下面“-”号开头的代码删除。</p>
<pre>         if (!tcp) {
            chmod(path, 0777);
-       } else {
-           char *ip = getenv("FCGI_WEB_SERVER_ADDRS");
-           char *cur, *end;
-           int n;
-
-           if (ip) {
-               ip = strdup(ip);
-               cur = ip;
-               n = 0;
-               while (*cur) {
-                       if (*cur == ',') n++;
-                       cur++;
-               }
-               allowed_clients = malloc(sizeof(in_addr_t) * (n+2));
-               n = 0;
-               cur = ip;
-               while (cur) {
-                       end = strchr(cur, ',');
-                       if (end) {
-                               *end = 0;
-                               end++;
-                       }
-                       allowed_clients[n] = inet_addr(cur);
-                       if (allowed_clients[n] == INADDR_NONE) {
-                                       fprintf(stderr, "Wrong IP address '%s' in FCGI_WEB_SERVER_ADDRS\n", cur);
-                       }
-                       n++;
-                       cur = end;
-               }
-               allowed_clients[n] = INADDR_NONE;
-                       free(ip);
-               }
}</pre>
<p>然后在php代码的根目录下执行<br />
<code>./buildconf --force</code></p>
<p>用于清除默认的configure脚本<br />
然后就可以标准的编译流程了<br />
<code><br />
./configure --enable-fastcgi --enable-fpm<br />
make<br />
make install<br />
</code><br />
为什么这样就行了呢？因为patch执行的时候只有两个文件产生了冲突，并且都是跟实际程序没有太大关系的代码（例如一些显示输出），所以，把这些干掉自然就可以正常编译。而buildconf &#8211;force可以将配置文件脚本根据当前的代码情况自动生成匹配的新的，这个也适用于你要将一些而外的模块编译到php程序里。在此案例里面就是不用重新修复那个错乱的configure文件了，直接根据当前的情况来生成新的。</p>
<p>从php-fpm邮件列表来看，php-fpm已经切换成BSD的授权形式了，有位大侠Michael Shadle正在跟php的作者协调，看看能不能将fpm整合到php的标准发行包里面，那样的话就省着每次都做patch了。</p>
<p>在此呼吁一下，那位有经验在Linux下做C++开发的，是否愿意贡献一下将fpm移植进入php，我可以协助与Michael联系。愿php-fpm蓬勃发展！</p>
]]></content:encoded>
			<wfw:commentRss>http://bigtoy4boy.com/blog/2009/06/how-to-compile-php-5-2-10-with-fpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
