I have been trying unsuccessfully for what seems like two weeks to deploy a simple Rails3 app to my Dreamhost shared server using Passenger.
I will admit that I am very new to Rails 3 and Passenger, but I feel like I have a pretty good grip on Unix / shell / development in general so I can handle some technical input.
This is where I stand:
I have created a very simple mysql rails 3 app:
rails new test_app -d mysql
rails g scaffold articles title:string body:text
Next, I modified config/database.yml to something like this:
[code]# MySQL. Versions 4.1 and 5.0 are recommended.
Install the MySQL driver:
gem install mysql2
And be sure to use new-style password hashing:
Warning: The database defined as “test” will be erased and
re-generated from your development database when you run “rake”.
Do not set this db to the same as development or production.
I loaded the app into a Passenger-enabled subdomain and ran:
(I realize DH’s wiki claims that this process will be killed, but for whatever reason it isn’t and all gems are installed into my ~/.gems/ directory successfully)
At this Passenger appears to run fine and I can see the standard “Welcome aboard” index. The problem is if I attempt to browse to my “/articles” page I receive a 500 (Internal Service Error).
The interesting thing is if I run the app via “rails s” I can view the site on port 3000 and everything works fine. I can add, remove, edit articles etc. I can even run the app with “rails s -e production” and it runs fine in production mode on port 3000 (naturally the index and stylesheets don’t load by default because “config.serve_static_assets = false”).
From the research that I’ve done, it has been suggested that any 500 errors are a result of an Apache configuration and that if there’s a problem with passenger you’ll receive a passenger error page that is “prettier” (i’ve seen these, so I sort of understand what that means). I also thought that it could be a permissions issue as I’ve seen 500 errors result from apache not being able to access certain assets so I dropped the 777 bomb on my app’s directory (recursively) and that didn’t do anything for me.
I also played around with the ENV[‘GEM_PATH’] and ENV[‘GEM_HOME’] variables in my config/environments/production.rb file (i’m not even sure that’s where something like that would belong, but its the best place I could come up with having not seen rails 3 suggestions anywhere…) and had no luck there.
Has anyone successfully run a Rails 3 app on Dreamhost with Passenger since their upgrade? I feels like there are still some missing pieces from the upgrade (perhaps on purpose), but gems like “builder” and an up to date “tzinfo” are not installed and therefore you can’t even create a new rails 3 app on the default state of a shell user…