ruby-on-railsrubydreamhostchiliproject

Deploying Chiliproject to Dreamhost


Having some issues deploying this. I've tried to deploy it twice now. Here's what I've done so far....

Installed the gems and versions required on the install page:

gem install -v=2.3.5 rails
gem install -v=1.0.1 rack
gem install -v=0.8.7 rake
gem install -v=0.4.2 i18n

Downloaded the package:

git clone git://github.com/chiliproject/chiliproject.git
cd chiliproject
git checkout stable

Had to find and set bundle since it wasn't in my path:

BUNDLE="/usr/lib/ruby/gems/1.8/bin/bundle"

Put my database info into database.yml:

And then started the bundle stuff:

$BUNDLE install --without=postgres rmagick
$BUNDLE exec rake generate_session_store

The last command got the error:

rake aborted!
can't activate rails (= 2.3.5, runtime), already activated rails-2.3.12. Make sure all dependencies are added to Gemfile.

So I changed 2.3.12 to 2.3.5 in the Gemfile and carried on:

RAIL_ENV=production $BUNDLE exec rake db:migrate

Then I got an error on this command too:

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
undefined method `autoload_paths' for #<Rails::Configuration:0x68a68dbb82c0>
/home/USERNAME/DOMAIN/public/config/environment.rb:44

I tried commenting out line 44 there, but then it threw another error undefined methodconvert_to_without_fallback_on_iso_8859_1' for class Class' so I didn't want to play around with it further. Note this only happened the second time I tried to deploy it. The first time I tried db:migrate succeeded (and I checked there was not data already in the DB).

*So for the second try I am stuck here :-( *

But this is what happened the first time after db:migrate succeded....

RAILS_ENV=production $BUNDLE exec rake redmine:load_default_data

With the last command however it failed saying permission denied for mysql 'user'@'173.236.128.0/255.255.128.0' and I was like WTF is it trying to connect to a network as if it were a host?

So I moved on, copied my configuration file and environment files in. Changed/added these lines:

# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
 ENV['RAILS_ENV'] ||= 'production'

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.5'# unless defined? RAILS_GEM_VERSION

if ENV['RAILS_ENV'] == 'production'  # don't bother on dev
  ENV['GEM_PATH'] = '/home/USERNAME/.gems' + ':/usr/lib/ruby/gems/1.8'
end

Then made this stuff writable and restarted Passenger:

chmod -R 777 files log tmp public/plugin_assets/
touch tmp/restart.txt

Sorry for the wall of text, is anybody able to shine some light on something I've done wrong?

Thanks in advance.

EDIT: So this is all wrong, here's how I got it working

rm ~/.gem*
gem install bundler

PATH=$PATH:/usr/lib/ruby/gems/1.8/bin

cd ~
git clone git://github.com/chiliproject/chiliproject.git
cd chiliproject
git checkout stable

cp * ../example.com/ -R
cd ../example.com

# Make sure database is working

bundle install --without postgres rmagick test
bundle exec rake generate_session_store

RAILS_ENV=production bundle exec rake db:migrate

# No output is no good, check database.yml

RAILS_ENV=production bundle exec rake redmine:load_default_data

Or see this: https://gist.github.com/1127306


Solution

  • The current ChiliProject stable releases (2.x) require the use of bundler. Thus the answer by Slotos is incorrect here. gen install doesn't work anymore, we NEED bundler.

    Also, we require Rails 2.3.12 now. You won't get any working results if you arbitrarily edit files. On certain platforms, you need to adapt the Gemfile (e.g. when using Ruby 1.8.6 or for certain versions of ImageMagick). For the currently suggested setup using Ruby 1.8.7 or REE, you don't need to adapt anything though.

    For installing the dependencies of the currently stable ChiliProject 2.x releases, you basically need to do the following:

    At first you need to make sure that the directory where gem binaries re installed to is in your $PATH. This can be temporarily be achieved by running this (in your case)

    export PATH=/usr/lib/ruby/gems/1.8/bin:$PATH
    

    Then you need to install the bundler gem and instruct it to install all dependencies

    gem install bundler
    bundle install --without rmagick postgres test # in your case
    

    What is really strange in your case is that rake seems to try to enable Rails 2.3.5. It should not do that (and doesn't unless you have changed certain files). I strongly recommend to start with a new clean source tree and don't change any arbitrary files.