Those of you who run Concrete5 on Dreamhost are probably underwhelmed with the performance that comes with running PHP as a cgi.
Well, I tooled and toiled and I found an answer that has yielded a big boost. If the next 5 to 7 days go as well as the last 48 hours, I might be willing to say that DreamHost is a viable concrete hosting option.
Now on to the goodies..
In the Dreamhost panel, create or edit the domain you will be hosting your site on. Make sure that both PHP and FastCGI are enabled for this domain.
Install concrete as you normally would for Dreamhost (expand it into the domain directory, and follow the typical instructions).
Once complete, cd into your site directory and do the following.
That should be it. Just go turn on pretty url's and you're done. Once Concrete has cached all of your pages, you should see very respectable response times on your site!
If your site isn't visited frequently enough, the compiled cache of your site will be unloaded, meaning that the next person to arrive will have to endure one slow page load before the site comes up to good speed.
There is a way around this. You can set a scheduled task to hit your site at 5 minute intervals.
SSH into your dreamhost account and edit your cron by typing:
crontab -e
Hopefully you know what editor you are in or are comfortable with VIM or Pico, because this isn't that tutorial.
Add something similar to the following to your cron:
After using this on a heavily used site, i ran into an issue with hard memory limits. Setting PHP_FCGI_CHILDREN=2 will launch two child php5.cgi processes for each request that needs to be serviced. Dreamhost uses mod_fcgid, so only one process will ever be used, rendering the children useless. Furthermore, each child was being allocated a portion of the available memory, causing occasional page load issues under heavy load.
On Dreamhost, you should be able to safely remove the PHP_FCGI_CHILDREN line and allow mod_fcgid to manage the processes. You'll notice far less php5.cgi processes running concurrently as a result.
Unfortunately, this worked for ONE of my THREE dreamhosted sites.
Once I modify my .htaccess file appropriately and create the /cgi-bin/dispatch.fgci file, visiting the site returns a blank white page which times out after 60 seconds. Then we get a generic internal server error message. No more info beyond that.
Anyone got any ideas? I followed the instructions word for word, and even set/verified the permissions twice using SSH.