So, a non-obvious problem getting typo working: my first effort at getting it running off Apache’s CGI mode was confounded my two mysterious problems: one turned out to be with the
RAILS_ENV setting, and the other was with symlinks.
Both turned out to be pretty straightforward, but there was a certain amount of cursing working out what was going on, since both just gave the useless “Cannot connect to typo” error, and left nothing in either the typo or Apache error logs.
Since typo is the first Rails app I’ve worked with I wasn’t aware of the
RAILS_ENV environment variable; when I set up typo I only bothered to configure a production DB. This works fine when you fire up the bundled WebBrick HTTP server (where you spec the environment with a runtime option), but as soon as you hook up Apache CGI it starts running in development by default. There are a number of possible fixes for this, but I went for the simple solution of editing the
config/environment.rb to make “production” the default value.
The other problem was a bit more subtle and annoying. Since I have an old site under
~/public_html that’s published via mod_userdir that I want to preserve, I planned on having typo’s
public/ folder act as the new root for my home directory, and drop all my old content in there. I naively symlinked
After much swearing and cursing I realised what ought to have been obvious given, oh, 5 seconds thought: since the
dispatch.fcgi reference their parent directory, this is a dumb idea. Because the symlink’s parent is nowhere near the typo root. Oops.
Overriding the normal mod_userdir with:
Alias /~rodgerd/ /my/home/dir/typo-root/public
…works fabulously, though.