Here's the step by step for getting Ruby on Rails running on a sparkling fresh new Amazon EC2 Instance.
1) Launch EC2 Instance
I won't explain this, but pick the latest Ubuntu AMI. The rest of this assumes you're ssh'd into the new isntance.
- apt-get update
- apt-get upgrade
- apt-get install zlibc zlib-bin zlib1g zlib1g-dbg zlib1g-dev libopenssl-ruby1.9 libssl-dev subversion git-core apache2 apache2-prefork-dev libapr1-dev
- Install ruby
- download ruby 1.9 from: http://www.ruby-lang.org/en/downloads/
- tar -zxvf ruby1.9....tgz
- cd ruby1.9....
- ./configure && make && make install
- ruby -v
- to check that installed properly
- cd ext/openssl
- ruby extconf.rb && make && make install
- This installs openssl support for ruby
3) Now get Rails up and running
- gem sources -a http://gems.github.com
- gem install rails sqlite3-ruby passenger
- passenger-install-apache2-module
- follow instructions
- it will give you a few lines you have to add to: /etc/apache2/apache2.conf (bottom is fine)
- Get your Rails app on server somewhere
- If you have an existing app, upload it to the server (eg: /home/myapp would work fine)
- Now if you don't have a rails app ready to go, lets quickly make one
- cd /home
- rails first_rails
- nano -w /etc/apache2/sites-available/first_rails
- Assuming you have some.domain.com pointed to the server (this can replace the Apache default site as well):
ServerName www.yourhost.com # delete this line if replacing rootDocumentRoot /home/rails/public
Allow from all# RailsEnv developmentRailsDefaultUser root
- a2ensite first_rails
- adds site to sites-enabled
- /etc/init.d/apache2 reload
That's it.
If you want your app under a sub directory of a different virtual host, see the instructions here:http://www.modrails.com/documentation/Users%20guide.html#_deploying_a_ruby_on_rails_application
Troubleshooting
- If you get: no such file to load rbconfig.rb
- be sure all 1.8 stuff is removed
- apt-get remove libruby1.8 rubygems
And lastly, get the latest awesome gems for web development:
gem install uuidtools appoxy-aws right_http_connection appoxy-simple_record appoxy-local_cache quetzall-cloud_cache
And you should probably setup logrotate to keep your log files under control, but that will come in another post.
No comments:
Post a Comment