Forked from kalpesh-fulpagare/RoR app with Nginx
Last active
August 29, 2015 14:07
-
-
Save sahidursuman/f3f3897e6ef9d04211af to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://www.modrails.com/documentation/Users%20guide%20Nginx.html#install_on_debian_ubuntu | |
Instruction for Ubuntu 12.X (should work on 11.x also) | |
a. Installing passenger gem | |
$ gem install passenger | |
b. Installing passenger-nginx module(It will compile and install Nginx with Passenger support) | |
IF ruby is installed without RVM | |
$ sudo passenger-install-nginx-module | |
ELSE IF RVM is used to install/manage Ruby | |
$ rvmsudo passenger-install-nginx-module | |
Q. Where do you want to install Nginx to? | |
Press enter, it will install nginx server in default directly i.e. | |
/opt/nginx | |
It will install nginx in opt/nginx directory, but you will not be able to start the server, | |
you need bash script that allow you to manage nginx | |
c. Installing startup script for nginx server | |
wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh | |
sudo mv init-deb.sh /etc/init.d/nginx | |
sudo chmod +x /etc/init.d/nginx | |
sudo /usr/sbin/update-rc.d -f nginx defaults | |
Now Start nginx server with command | |
$ sudo service nginx start | |
It will start nginx server on 80 port, | |
from browser go to http://localhost, if it displays | |
'Welcome to nginx!', then nginx is properly installed. | |
However if you already have other server(e.g. apache) running on same port i.e. 80 | |
nginx will not start and it wil throw bind error for port 80, so in this case you need to change default port no for either that other server(e.g. apache) or for nginx server. Port no for nginx can be changed from its configuration file | |
Steps: | |
$ sudo vim /opt/nginx/conf/nginx.conf | |
Edit port no, change from 80 to some other port no say 90, save file and restart nginx server with command | |
$ sudo service nginx stop | |
$ sudo service nginx start | |
Now open browser and go to URL | |
http://localhost:90 | |
It should display 'Welcome to nginx!' and that's it, you have successfully installed nginx server | |
Adding rails application details to nginx config file | |
e.g. Your ruby on rails app path is /home/kalpesh/projects/demo_app | |
Default nginx config file path: /opt/nginx/conf/nginx.conf | |
Edit server part to add your app details | |
$ sudo vim /opt/nginx/conf/nginx.conf | |
server { | |
listen 80; | |
server_name local.demoapp.com; | |
root /home/kalpesh/projects/demo_app/public; | |
passenger_enabled on; | |
rails_env development; | |
} | |
$ sudo vim hosts | |
127.0.0.1 localhost | |
127.0.1.1 kalpesh | |
127.0.0.1 local.demoapp.com | |
Now go to http://local.demoapp.com and you are done. | |
========================================================= | |
Useful links: | |
https://www.digitalocean.com/community/articles/how-to-install-rails-and-nginx-with-passenger-on-ubuntu | |
http://edapx.com/2012/10/28/nginx-passenger-rvm-and-multiple-virtual-hosts/ | |
http://askubuntu.com/questions/257108/trying-to-start-nginx-on-vps-i-get-nginx-unrecognized-service | |
http://excid3.com/blog/setting-up-ubuntu-12-04-with-ruby-1-9-3-nginx-passenger-and-postgresql-or-mysql/#.UaxBiek-u0y |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment