I'm going to answer from a server point of view here about apache configuration.
If you're HTTPd server is putting a heavy load on your server through many simultaneous connections try keeping KeepAlive on but bring it right down to 2-3 seconds. Without that, proccesses hang around for a while (default 20 secs I think) after they've exhausted themselves and waste RAM that could be being used elsewhere.
That aside, as Ambush mentioned, clustering is also a great way to scale up an app to handle more connections (I was just rambling about this in a thread in General Discussion a few moment ago

).
As for practises in your coding.
Benchmark.
Make calls to microtime throughout your code, check where things are lagging a see if you can refactor or modify the code in some way to bring the load down. Don't use persistent MySQL connections... that really would add a heavy load to your server.
If you get into a habit of benchmarking code though you'll pick up on where things get slow and you'll figure out ways to improve upon it
