Rails server installation using VirtualBox

September 22, 2015
admin

Contributor: Md. Tauhidul Islam, Software Engineer, Nascenia

Here are the steps of installing Rails server using VirtualBox.

Get access in VirtualBox server from Local terminal using SSH

The best way to login to a guest Linux VirtualBox VM is port forwarding.

1. Go to Machine > Settings > Network tab

2. Check Cable Connected (if have unchecked)

3. Press ‘Port Forwarding’ button

Network

4. Add a new port forwarding rule as given below –

Name: ssh
Protocol: TCP
Host IP: 127.0.0.1
Host Port: 3022
Guest IP:
Guest Port: 22

5. Press OK button of Port Forwarding Rules window

Port Forwarding Rules

6. Press OK button of Settings window

7. Select Ubuntu server machine and press Start button

Oracle VM VirtualBox Manager

8.¬†Open your terminal and login into server (follow this command as below) –

$ ssh -p 3022 user@127.0.0.1

Where ‘user’ is your username within the VM.

Please be sure, you do not forget to install an ssh server. If ssh command is not working, install it by following this command:

$ sudo apt-get install openssh-server

9. Enter server password

Setting up a Linux server for Rails project

Create new user with sudo access for deploy your project in server –

$ ssh -p 3022 user@127.0.0.1
$ sudo adduser deployer
$ sudo adduser deployer sudo

Exit from server and login from new user (deployer) –

$ exit
$ ssh -p 3022 deployer@127.0.0.1

Install git in your server –

$ sudo apt-get update
$ sudo apt-get install build-essential git-core curl
*y

Check if the git is working fine –

$ git --version #git version 1.7.9.5

Install rvm for controlling ruby versions –

$ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
$ [\curl -sSL https://get.rvm.io | bash -s stable --quiet-curl --ruby=1.9.3]
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc
$ source ~/.profile

Logout ssh and login again –

$ exit
$ ssh deployer@127.0.0.1

Check if rvm installation is successful –

$ type rvm | head -n1 #rvm is a function

Install rvm requirements (Generally requirements are installed with rvm but we run this following command for confirmation) –

$ rvm requirements

Check rvm version –

$ rvm -v #rvm 1.21.10 (stable) by Wayne......

Install ruby (select version as needed for your project) –

$ rvm install 1.9.3-p429

Check ruby version –

$ rvm list
1.9.3-p429
$ ruby -v #ruby 1.9.3p429 (2013-05-15 revision 40747) [i686-linux]

Install rails (select version as needed for your project) –

$ gem install rails -v 3.2.13 --no-document

Check rails version –

$ rails -v #Rails 3.2.13

Install mysql database (If your project is developed by using mysql database) –

$ sudo apt-get install mysql-server
$ sudo apt-get install mysql-client-core-5.5
$ sudo apt-get install libmysql-ruby libmysqlclient-dev
*y
$ gem install mysql2

If you face any error as bellow –

[E: Unable to locate package libmysql-ruby]

Then run this following command¬†–

$ sudo apt-get install libmysqlclient-dev libmysqlclient18 ruby-dev
*y
$ gem install mysql2

Generate ssh key –

$ cd ~
$ ssh-keygen -t rsa -C "your email address"
#==========================start-nginx-installation====================
$ cd ~
$ gem install passenger -v 4.0.1
$ sudo apt-get install libcurl4-openssl-dev
*y
$ rvmsudo passenger-install-nginx-module
*[Enter]
*1
*[Enter] #Where do you want to install Nginx to?
*[Enter] #This installer has already modified the configuration file for you!
==============

That /etc/hosts has an entry for localhost. It should have something like –

127.0.0.1 localhost.localdomain localhost
127.0.1.1 my-machine

nginx start/stop/restart/reload –

$ echo 'PATH=$PATH:/opt/nginx/sbin' >> ~/.bashrc
$ source ~/.profile

Now we can control nginx using –

sudo service nginx stop
sudo service nginx start
sudo service nginx restart
sudo service nginx reload

Run the command to install imagemagick –

$ sudo apt-get install imagemagick libmagickcore-dev libmagickwand-dev

Hope this will help you to install Rails server using VirtualBox on your local PC.

No comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.