<?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>The Life and Times of Michael Shadle &#187; PHP-FPM</title>
	<atom:link href="http://michaelshadle.com/category/php-fpm/feed/" rel="self" type="application/rss+xml" />
	<link>http://michaelshadle.com</link>
	<description>&#34;Sometimes I don&#039;t know why I even fucking try&#34;</description>
	<lastBuildDate>Sat, 31 Jul 2010 04:31:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Happy day! PHP-FPM included with PHP 5.3.3RC1, and WordPress 3.0</title>
		<link>http://michaelshadle.com/2010/06/17/happy-day-php-fpm-included-with-php-5-3-3rc1-and-wordpress-30/</link>
		<comments>http://michaelshadle.com/2010/06/17/happy-day-php-fpm-included-with-php-5-3-3rc1-and-wordpress-30/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 00:19:52 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=406</guid>
		<description><![CDATA[Officially in the 5.3.3RC1 distribution. Sweet! From the NEWS file: 17 Jun 2010, PHP 5.3.3 RC1 ... - Added FastCGI Process Manager (FPM) SAPI. (Tony) ... and on an unrelated note: - Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers. (Ilia) Shouldn't this be called JSON_NUMERIC_CONVERT? or JSON_FORCE_INTEGER? It's not [...]]]></description>
			<content:encoded><![CDATA[<p>Officially in the <a href="http://downloads.php.net/johannes/php-5.3.3RC1.tar.bz2" target="_blank">5.3.3RC1</a> distribution. Sweet! From the NEWS file:</p>
<blockquote><p>17 Jun 2010, PHP 5.3.3 RC1<br />
...<br />
- Added FastCGI Process Manager (FPM) SAPI. (Tony)<br />
...</p></blockquote>
<p>and on an unrelated note:</p>
<blockquote><p>- Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers. (Ilia)</p></blockquote>
<p>Shouldn't this be called JSON_NUMERIC_CONVERT? or JSON_FORCE_INTEGER? It's not just a "check" - guess it's too late now? <img src='http://michaelshadle.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>WordPress 3.0...</strong><br />
<a href="http://wordpress.org/development/2010/06/thelonious/" target="_blank">WordPress 3.0 came out today</a>. Tonight I'll probably upgrade this site and see how well it works. I'm going to check it in to Subversion first so I can roll back if needed.</p>
<p>Some key changes I wanted to talk about...</p>
<ul>
<li>One thing that was highlighted is the option to use custom header images - which can easily be done right now. I did it well over a year ago in a theme. With post meta you can always load metadata about a post and use it in the theme, so this update seems a bit specific to me, since themes were already customizable. Why build a feature that is so specific? Same with background images/colors...</li>
<li>Custom menus/menu editor - this could get cool, the menu editor is the more exciting piece as it will allow a visual way to manage the taxonomy. Not sure how it will mix in with tags and categories though, guess that's "I'll see it when I upgrade."</li>
<li>MU merge - finally, I can run multiple installs off the same WP install, hopefully, without wp-config.php hacks. How exactly it works I will have to find out.</li>
<li>Custom post types - now all of a sudden you can make any sort of object with custom attributes, which opens the door to things such as the item below.</li>
<li>WP e-Commerce says they're going to change from using all their extra tables to using core WP schema. That's awesome.</li>
</ul>
<p>A couple bones to pick...</p>
<ul>
<li>It's not a rewrite. It's still a <em>blogging</em> tool that is being extended further to be a full-featured that can handle "anything" - however the tables are still named "posts" even though now you can create an arbitrary type of item. I'd like to see it renamed and normalized.</li>
<li>All the plugins and themes and such are procedural code, but some inner workings such as the DB layer are OO. That seems amateur to me, and unnecessary.</li>
</ul>
<p>I'd love to see WP get rewritten. It has a LOT of overhead and includes built in that need calling and a lot of other cruft that I stumble across. Go back to the drawing board with building a list of every feature it has, and look at it from a longer term perspective. It's great to see something keep growing, but when it comes down to it, it is still a fork of b2, which was made for <em>blogging</em>, not for <em>anything and everything</em>.</p>
<p>It's got the right idea with extensibility and such, but to me the core has a lot of code - and lots of code means more complicated execution paths, more "I'll just add this in instead of refactor this old code," more cruft. I'm quite sure I could get as much extensibility out of a fresh rewrite with less than half the code under the hood. Things like text styling for example should be moved to a plugin (I disable all the wptexturize filters for example... throw those in an include and make it enabled by default instead!)</p>
<p>Of course, WordPress does have millions of users so it has a proven track record. I can't complain that much, I do use it myself. For blogging, it's the best tool out there. For other things, it typically leverages plugins which may or may not have decent UIs or APIs to interact with. That's where it shows signs of weakness. It also isn't as strict as Drupal when it comes to code conventions either, which would greatly increase the usability of a lot of plugins.</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2010/06/17/happy-day-php-fpm-included-with-php-5-3-3rc1-and-wordpress-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-FPM and nginx upstart scripts</title>
		<link>http://michaelshadle.com/2010/05/21/php-fpm-and-nginx-upstart-scripts/</link>
		<comments>http://michaelshadle.com/2010/05/21/php-fpm-and-nginx-upstart-scripts/#comments</comments>
		<pubDate>Fri, 21 May 2010 09:17:51 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=377</guid>
		<description><![CDATA[Upstart is becoming the de-facto standard for everything in Ubuntu, and I do enjoy it's process management and re-spawning capabilities. (Actually, before PHP-FPM I used to use upstart jobs to su - $user php-cgi -b $port ) These are VERY simple but effective scripts, and would actually be beefed up to be more intelligent (chaining [...]]]></description>
			<content:encoded><![CDATA[<p>Upstart is becoming the de-facto standard for everything in Ubuntu, and I do enjoy it's process management and re-spawning capabilities.</p>
<p>(Actually, before PHP-FPM I used to use upstart jobs to su - $user php-cgi -b $port <img src='http://michaelshadle.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>These are VERY simple but effective scripts, and would actually be beefed up to be more intelligent (chaining nginx to start after PHP-FPM for example. However, if you do not need PHP, then that's a useless chain. So I kept it simple. I suppose you could add a short delay to start nginx then...)</p>
<p>Note: make sure PHP-FPM is set to daemonized = yes.</p>
<p>Second note: this works for <a href="http://php-fpm.org/download/" target="_blank">PHP 5.2.x w/ the PHP-FPM patch</a>, on Ubuntu Lucid Lynx (10.04) - anything else YMMV. I am not using PHP-FPM w/ PHP 5.3 yet since I have no environments that I know will support 5.3 code. When I finally get one, I will look for the same opportunity.</p>
<p>/etc/init/nginx.conf:</p>
<pre class="brush: plain">
description "nginx"

start on (net-device-up and local-filesystems)
stop on runlevel [016]

expect fork
respawn
exec /usr/sbin/nginx
</pre>
<p>/etc/init/php-fpm.conf:</p>
<pre class="brush: plain">
description "PHP FastCGI Process Manager"

start on (net-device-up and local-filesystems)
stop on runlevel [016]

expect fork
respawn
exec /usr/local/bin/php-cgi --fpm --fpm-config /etc/php-fpm.conf
</pre>
<p>Once you've done this you can remove all the /etc/init.d/php-fpm, /etc/init.d/nginx and /etc/rc?.d/[K,S]??php-fpm and /etc/rc?.d/[K,S]??nginx symlinks and files. This takes care of all of that.</p>
<p>Feel free to comment and leave better tips, tricks and ideas!</p>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2010/05/21/php-fpm-and-nginx-upstart-scripts/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jérôme Loyet is a saint!</title>
		<link>http://michaelshadle.com/2009/12/15/jerome-loyet-is-a-saint/</link>
		<comments>http://michaelshadle.com/2009/12/15/jerome-loyet-is-a-saint/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 09:12:41 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=243</guid>
		<description><![CDATA[I'd like to announce that Jérôme Loyet stepped up this weekend and hacked up the first round of code to get dynamic process management going. Antony committed it (see below) and it's on its way to being part of PHP core as well. So two major events in only a week and a half or [...]]]></description>
			<content:encoded><![CDATA[<p>I'd like to announce that Jérôme Loyet stepped up this weekend and hacked up the first round of code to get dynamic process management going. Antony committed it (see below) and it's on its way to being part of PHP core as well. So two major events in only a week and a half or so!</p>
<p>See <a href="http://news.php.net/php.internals/46414">http://news.php.net/php.internals/46414</a>.</p>
<p>Good job Jérôme. Where were you a couple months ago, buddy? <img src='http://michaelshadle.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2009/12/15/jerome-loyet-is-a-saint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-FPM brought in to PHP core - interesting surprise</title>
		<link>http://michaelshadle.com/2009/12/05/php-fpm-brought-in-to-php-core-interesting-surprise/</link>
		<comments>http://michaelshadle.com/2009/12/05/php-fpm-brought-in-to-php-core-interesting-surprise/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 05:47:05 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=238</guid>
		<description><![CDATA[Read it here: http://news.php.net/php.internals/46277. First off, big thanks to Antony Dovgal. I've exchanged words with him in the past about PHP-FPM (and actually other PHP things) but was completely unaware he was working on this. So, we've got a blessing but also an interesting dilemma on our hands. We've got a wishlist and some bugs [...]]]></description>
			<content:encoded><![CDATA[<p>Read it here: <a href="http://news.php.net/php.internals/46277">http://news.php.net/php.internals/46277</a>.</p>
<p>First off, big thanks to Antony Dovgal. I've exchanged words with him in the past about PHP-FPM (and actually other PHP things) but was completely unaware he was working on this.</p>
<p>So, we've got a blessing but also an interesting dilemma on our hands. We've got a wishlist and some bugs to work out. I have a feeling if Antony updated some of the CGI internals it may have resolved some of those bugs. Not sure. I'm trying to get some specifics now - what version of PHP-FPM he brought in, how the community can still support it and how difficult it may be to submit patching, if he thinks a separate management daemon makes more sense than keeping it glued inside of the SAPI (it seems out of place to me for a SAPI to require a proprietary configuration file and daemon .pid, log, etc. files...)</p>
<p>Hopefully I can get ahold of him soon and discuss some of this. I was already mid-discussion with another PHP core developer about how they think the best approach would be to get PHP-FPM aligned with PHP core (they leaned more towards a separate SAPI too.)</p>
<p>My main goal is to make it easy as it can be for PHP-FPM to become an official package or included with PHP so that people who use PHP from repositories on their favorite distributions and such can enjoy the benefits of PHP-FPM without patches or separate downloads. If the management portion does split off, I fully intend on making sure it is aligned properly and is as simple as "apt-get install php5-fpm" or something of that nature. Still easily installed and everything.</p>
<p>Anyway, we'll see how things go. This caught me off guard and now I have to figure out at what point we're at now with development. Jérôme Loyet has expressed interested in trying to convert the configuration file to nginx style - something Andrei had told me he had wanted to do. The XML throws some people off, thinking it's an actual XML parsed document with XML include support and such... also if done right, this will allow PHP-FPM's configuration to support includes, and who knows, maybe variables some day. But for now it would be a lot cleaner to read, and it seems the majority of PHP-FPM users are nginx users already anyway <img src='http://michaelshadle.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2009/12/05/php-fpm-brought-in-to-php-core-interesting-surprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&quot;New&quot; PHP-FPM instructions now posted</title>
		<link>http://michaelshadle.com/2009/08/06/new-php-fpm-instructions-now-posted/</link>
		<comments>http://michaelshadle.com/2009/08/06/new-php-fpm-instructions-now-posted/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 18:11:33 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP-FPM]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=227</guid>
		<description><![CDATA[I just posted some quick steps on how to get started messing around with the new PHP-FPM. First, go signup to join the project at the Launchpad Project Page! Remember this is not production ready quite yet. But download the code, test it out, and contribute. The steps are on the main page to get [...]]]></description>
			<content:encoded><![CDATA[<p>I just posted some quick steps on how to get started messing around with the new PHP-FPM.</p>
<p>First, go signup to join the project at the <a href="https://launchpad.net/php-fpm/">Launchpad Project Page</a>!</p>
<p>Remember this is not production ready quite yet. But download the code, test it out, and contribute. The steps are on the main page to get you started. It would be great if we could get it fixed up so it will work against 5.2.10 or 5.3.0 (and is smart enough to use the same ./configure script to determine it)</p>
<p>We can use many types of contributions, namely:</p>
<ul>
<li>Developers - anyone who is familiar with C and PHP/FastCGI. We've got a list of desired features and such. Help us make them all happen!</li>
<li>Monetary contributions - keep the servers up, fund special requests, etc.</li>
<li>Documentation scrutiny - as the project changes, the documentation will need to reflect it. We'll try our best, but that's the great thing about using a wiki - update it as needed!</li>
<li>Translations - the wiki has translations currently, and the project itself -may- at some point require some translations. Possibly leveraging Launchpad's translation interface (which ties in to gettext hooks in the code)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2009/08/06/new-php-fpm-instructions-now-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.3.0 patch now considered stable</title>
		<link>http://michaelshadle.com/2009/07/31/php-530-patch-now-considered-stable/</link>
		<comments>http://michaelshadle.com/2009/07/31/php-530-patch-now-considered-stable/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 02:18:10 +0000</pubDate>
		<dc:creator>mike</dc:creator>
				<category><![CDATA[PHP-FPM]]></category>

		<guid isPermaLink="false">http://michaelshadle.com/?p=215</guid>
		<description><![CDATA[After a few weeks of people running it in production without any issues, I'm proud to say that PHP-FPM for PHP 5.3.0 can now drop it's "Release Candidate" title and is now in "production" Download PHP-FPM: http://php-fpm.org/Download Remember, PHP 5.3.x has a lot of differences than PHP 5.2.x - be sure to read the Changelog, [...]]]></description>
			<content:encoded><![CDATA[<p>After a few weeks of people running it in production without any issues, I'm proud to say that PHP-FPM for PHP 5.3.0 can now drop it's "Release Candidate" title and is now in "production"</p>
<p>Download PHP-FPM: <a href="http://php-fpm.org/Download" target="_blank">http://php-fpm.org/Download</a></p>
<p>Remember, PHP 5.3.x has a lot of differences than PHP 5.2.x - be sure to read the Changelog, migration guide, etc. located here: <a href="http://php.net/releases/5_3_0.php" target="_blank">http://php.net/releases/5_3_0.php</a> - watch out for a lot of E_DEPRECATED messages <img src='http://michaelshadle.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>However, I am excited about the performance improvements, mysqlnd, php.ini syntax stuff, support for htscanner like .htaccess file override capabilities and more.</p>
<p>In the future, PHP-FPM will no longer be a patch (at least, it shouldn't be) - there is now a new project on Launchpad that Andrei helped start that is a standalone PHP-FPM. It still requires PHP sources to compile it (for now) but it will allow the project to move at a quicker pace and not be bundled directly into PHP. Join the project and see how you can contribute today! <a href="https://launchpad.net/php-fpm/" target="_blank">https://launchpad.net/php-fpm/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michaelshadle.com/2009/07/31/php-530-patch-now-considered-stable/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
