TagRuby on Rails

Heroku deploy Rails in 5 minutes

In this post I will show, how you can easily getting started to deploy your Ruby on Rails project in Heroku. Heroku is free cloud platform as service (PaaS), and they bet to easily project deployment service.

This guide is helpful only for those who are trying Heroku at first time! We will skip Active Record begin on this project, when we could better only test Heroku for Rails.

If you are not yet registered to Heroku, do it now:
https://id.heroku.com/signup.

I was using Ruby 1.9.3p484 and Rails 4.0.0 on Ubuntu 13.10 64-bit.

1. Create new Rails project

And generate welcome controller with index action:

$ rails new hello-heroku --skip-active-record
$ cd hello-heroku
$ rails g controller welcome index

Add to root routing from config/routes.rb:

$ nano config/routes.rb

Uncomment next line:

root 'welcome#index'

Heroku require that you modify little bit your project /bin files (bundle, rails, rake) shebang.
Change:

#!/usr/bin/env ruby1.9.1

to

#!/usr/bin/env ruby

1.1. Heroku Procfile

Create new Procfile on project root for Heroku:

$ nano Procfile

And write next code in file Procfile:

web: bundle exec rails server -p $PORT

1.2. Initialize Git

$ git init

Do first commit:

$ git add .
$ git commit -m "first commit"

2. Heroku

Is time to install heroku toolbelt:

$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

Login to Heroku:

$ heroku login

2.1. Create new Heroku app

$ heroku create

Push your project to Heroku:

$ git push heroku master

3. Test

Open your Heroku App to browser:

$ heroku open

If your browser opened page looks like next:

Welcome#index

Find me in app/views/welcome/index.html.erb

You are successfully deploy your Rails app in Heroku!

Source

https://toolbelt.heroku.com/
https://devcenter.heroku.com/articles/getting-started-with-rails4

Ruby on Rails Linuxissa

Tämän ohjeen mukaisesti on saatu testatusti toimimaan oma kehitysympäristöni Xubuntu 13.10 saucy. Ubuntu 12.04 LTS ei aikaisemman testin perusteella toiminut, mutta tulen lähipäivinä päivittämään tämän ohjeen toimimaan myös sillä.

Asennetaan Ruby on Rails

Testattuani asentaa Ruby on Rails moneen eri linuxin levityspakettiin tai niiden eri versioihin, olen tullut siihen johtopäätökseen että järkevintä on asentaa RVM (Ruby Version Manager), jonka kautta hallitaan Rubya. RVM löytyy myös pakettivarastosta, mutta siellä on tällä hetkellä vanha ja buginen versio, joten järkevintä on asentaa se RVM:n repositorista:

$ sudo apt-get update
$ sudo apt-get -y install curl
$ sudo curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles

Luodaan RVM:lle alias, jotta pystymme kutsumaan sitä myös jatkossa:

$ source $HOME/.rvm/scripts/rvm

Asennetaan rails:

$ sudo gem install rails

Hei Rails!

Luodaan “Hei Maailma” rails projekti:

$ mkdir -p /home/niko/public_html/
$ cd /home/niko/public_html/
$ rails new hello-rails

Asennetaan Apache2

$ sudo apt-get -y install apache2
$ sudo a2enmod rewrite
$ sudo a2enmod userdir
$ sudo service apache2 restart

Asennetaan Phusion Passenger

$ sudo apt-get -y install libapache2-mod-passenger

Luodaan apacheen uusi virtualhost:

$ sudoedit /etc/apache2/sites-available/hello-rails.conf

Kirjoita seuraava koodi hello-rails -tiedostoon (korvaa home-kansion käyttäjä omalla):

<VirtualHost *:80>
  RailsEnv development
  ServerName hello-rails
  DocumentRoot /home/niko/public_html/hello-rails/public/
</VirtualHost>

Hyväksy uusi sivusi, ja lataa Apache:n asetukset uudestaan:

$ sudo a2ensite hello-rails.conf
$ sudo service apache2 restart

Testaus

Otetaan sivustoon yhteyttä curlilla, todistaaksemme railsin toimivuuden:

$ curl -I hello-rails

Tulos:

HTTP/1.1 200 
Date: Thu, 05 Dec 2013 16:10:47 GMT
Server: Apache/2.4.6 (Ubuntu)
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.13
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: d63000a5-d953-4346-bf1f-4a9c4ff4f8db
X-Runtime: 0.009467
Set-Cookie: request_method=HEAD; path=/
ETag: "9fdff472a0cc0802ae8009cd2322f2da"
Status: 200
Content-Type: text/html; charset=utf-8

Lähteet

https://rvm.io/rvm/install

© 2017 Niko Kiuru

Theme by Anders NorenUp ↑