Deploying a Rails app (into a subdirectory)
Some notes on deploying my rails application in to a subdirectory. I’m using rvm to manage Rails versions and this was all on Debian Lenny.
1. Install Rails (see here for some pointers).
2. Install Passenger
gem install passenger apt-get install apache2-prefork-dev apt-get install libapr1-dev apt-get install libaprutil1-dev passenger-install-apache2-module
Follow the instructions passenger gives you.
3. Edit your apache config
3.1 Create a symlink to your app’s public directory inside your current website root:
(in this example my app is call nihongo)
ln -s /PATH/TO/WEBAPP/nihongo/public /PATH/TO/YOUR/DOCROOT/nihongo
3.1 Edit your apache config for this root to contain a pointer to this app:
RackBaseURI /nihongo <Directory /PATH/TO/YOUR/DOCROOT/nihongo> Options -MultiViews </Directory>
4. Checkout your app…
Possibly use rake db:setup to setup the database. Use “bundle install” to install required bundle files.
Use…
rake assets:precompile
to “compile” assets, or you may get an error such as:
Completed 500 Internal Server Error in 518ms ActionView::Template::Error (application.css isn't precompiled): 2: <html> 3: <head> 4: <title>Nihongo</title> 5: <%= stylesheet_link_tag "application" %> 6: <%= javascript_include_tag "application" %> 7: <%= csrf_meta_tags %> 8: </head> app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___2940450108335557336_39013520' app/controllers/words_controller.rb:8:in `index'
I don’t quite understand how Rails detects the app is running in production yet. But it does so automatically somehow…