Speed WordPress MultiSite With X-Sendfile For Apache

Like WordPress MU before, MultiSite implementations of WordPress 3.0 use a script to handle image and other attachment downloads. That script checks permissions and maps the request path to the files path on disk, then reads the file out to the web server, which sends it to the browser. That approach has some inefficiencies, and […] » about 400 words

Apache Virtual Hosting Black Magic

I’ve configured Apache for virtual hosting on more sites than I can count, but I’ve always just kind of stumbled through until now. What’s changed? The Apache 2.2 documentation is worlds better than the old 1.3 docs (even though the old docs rank highest in Google). So here they are: name-based virtual hosts, plus virtual host configuration examples (including an example mixed name and IP virtual hosting, which is what I needed), and some tips on dynamically configured mass virtual hosting.

Chris Lea On Nginx And WordPress

“Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache.” —Chris Lea.

Why? No forking. No loading of unnecessary components. Fast CGI. And to prove it’s not as complex as you might think, he’s installing it live. The session has eight minutes left, can he do it?

Yes, he did. The big concern is in managing permalinks without .htaccess, and it turns out it’s not so difficult. Does he have a cookbook for this? Darn, no time left for questions, I’ll have to ask later.

Apache, MySQL, and PHP on MacOS X

p0ps Harlow tweeted something about trying to get an AMP environment running on his Mac. Conversation followed, and eventually I sent along an email that look sorta like this: If you’re running 10.4 (I doubt it, but it’s worth mentioning because I’m most familiar with it), here’s how I’ve setup dozens of machines for web […] » about 300 words

Apache 2.2.x on Mac OS X

I’m lazy, that’s all I can say to explain why I hadn’t put any serious thought into upgrading from the 1.3.x version of Apache that ships with Mac OS X to the much more feature rich 2.0.x or 2.2.x. But today I found reason enough to switch my development to 2.2.3, and I went looking to the community for information about the switch.

A post in Marc Liyanage’s forums made it clear how easy config/compile was. Minutes later I was up and running and fiddling with the new features.

T2000 Unboxed And Online

My Sun T2000 is here, and with Cliff‘s help it’s now patched, configured, and online. (Aside: what’s a Sun Happy Meal?) I’ll second Jon‘s assessment that Sun really should put some reasonable cable adapters in the box, as the the bundle of adapters necessary to make a null modem connection to the box is ridiculously […] » about 200 words

Where’d All My Rewrite Rules Go?

Between WordPress 1.x and 2.x there was a big change to the way rewrite rules are handled.

In the old days, everything got written out to a <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule">.htaccess</a> file. Every condition, every form of permalink could be found there, and I had some comfort knowing I could see and mess with it all. I was a bit surprised to find that with 2.0.2, WP writes out a sparse file that has only one significant rule. Something that looks like this:

RewriteRule . /blog/index.php [L]

That one line takes everything in your request URL and passes it through to index.php for processing. The beauty of this is that WP doesn’t need to write to the file system with every change to the permalink structure (which used to include every new “page” added or renamed).

The only downside to this is that you can no longer expect a $_REQUEST array full of all the query terms your plugin might use. Instead you’ll have to use the <a href="http://codex.wordpress.org/Function_Reference/WP_Query">$wp_query</a> object. All of this was probably mentioned in the API docs before I built a bunch of dependancies on $_REQUEST, but it was easy enough to fix.

I Will Crush You

Or, er, my server will be crushed. I guess I should admit that my stuff could do with some optimization, maybe. Perhaps what I really need is something faster than Celeron with 512MB RAM. Maybe. tags: 512mb ram, apache, break point, breaking point, celeron, crushed, load average, mysql, php, server, top, web server » about 100 words

Enabling .htaccess On Mac OS X

I do a lot of web development on my laptop. I’ve got Apache and PHP there, so it’s really convenient, but I usually move projects off to other server before I get around to wanting to mess with mod_rewrite. Not so, recently, but I ran into a big stumbling block when I discovered OS X’s […] » about 200 words