The Pencil Guy: Hourann's illogical blog

Fixing WordPress 2.1 + PHP 5 + HTTP 1.0

So I’ve finally figured out the random problems that were plaguing this blog. It all started when I upgraded to PHP 5.2.1, which breaks lots of functions that software like WordPress depends on. The obvious step, which I was silly enough to delay, is to upgrade WordPress and all plugins to their most recent versions, thus making life much easier. (Many plugins are bitten by output buffering changes.)

But I was still having trouble due to this nasty bug, whereby recent versions of PHP plus recent versions of WordPress will cause the output to always be HTTP 1.1. Symptoms include seemingly random hex character strings scattered around your blog (such as when connecting via telnet), or blank pages that only affect some people. This is because HTTP 1.1 features, like the chunked transfer encoding, confuse clients that only speak 1.0 (including many commercial proxy servers and a lot of Python code built on feedparser).

The fix is to edit line 832 in wp-includes/functions.php. Replace this line in the status_header function:

@header("HTTP/1.1 $header $text", true, $header);

with this much happier code:

@header($_SERVER["SERVER_PROTOCOL"]." ".$header." ".$text, true, $header);

Also, I found that upgrading to 2.1 breaks the old version of Jerome’s Keywords, and can unexpectedly change your link category numbers.

Update 16/5: The problem has been fixed in WordPress 2.2. Thanks Ryan!

  1. [...] Na mijn vorige post kwam ik er achter dat deze al een paar dagen niet verscheen op fifo.sh. Na MacTijn eens geporred te hebben kwam hij er achter dat wordpress een HTTP/1.1 response (incl. nasty chunked transfer encoding) geeft. Omdat ik al een tijdje niet geblogged had, kon ik niet helemaal achterhalen hoe lang de bug al aanwezig was. Met apache hebben we niet heel veel gedaan de laatste tijd, maar een tijdje terug zijn we wel van php4 naar php5 overgestapt. Nu blijkt hier dus de bug te zitten. WordPress maakt zelf zijn HTTP headers en doet dit niet heel erg elegant. Meer info over deze issue is te vinden op: http://hourann.com/blog/2007/03/31/fixing-wordpress-21-php-5-http-10 [...]

  2. [...] via: Podster Forum, The Pencil Guy [...]

  3. [...] Podster Forum, The Pencil Guy Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue [...]

Care to leave a comment?