Skip to content

Instantly share code, notes, and snippets.

@orendon
Last active August 29, 2015 14:00
Show Gist options
  • Save orendon/11443646 to your computer and use it in GitHub Desktop.
Save orendon/11443646 to your computer and use it in GitHub Desktop.
tux commands, nginx phusion passenger guide
# Deploying Ruby on Rails applications using Nginx and Phusion Passenger
#
# guideline commands were tested on ubuntu 14.04 server, ruby 2.1.1 and rails 4.1#
#
# create user on sudoers
useradd -d /home/orendon -s /bin/bash -G sudo -m orendon
# add 1024mb swap
sudo dd if=/dev/zero of=/swap bs=1M count=1024
sudo mkswap /swap
sudo swapon /swap
/swap none swap defaults 0 0 # /etc/fstab
# ~/.gemrc
gem: --no-rdoc --no-ri
# commons
sudo apt-get install git nodejs libsqlite3-dev
# setup rbenv and ruby-build
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# Install latest ruby (2.1.1)
# fix not suitable C compiler, ssl errors during rbenv install
# see: https://github.com/sstephenson/ruby-build/issues/528 and https://github.com/sstephenson/ruby-build/issues/526#issuecomment-37933242
# NOTE: issue solved on ruby 2.1.2 https://www.ruby-lang.org/en/news/2014/05/09/ruby-2-1-2-is-released/
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev
# downgrade to readline-6.2 or include this patch
curl -fsSL https://gist.github.com/mislav/a18b9d7f0dc5b9efc162.txt | rbenv install --patch 2.1.1
# install passenger and nginx
apt-get install libcurl4-openssl-dev
git clone git://github.com/dcarley/rbenv-sudo.git ~/.rbenv/plugins/rbenv-sudo
rbenv global 2.1.1
gem install bundler
gem install passenger
rbenv sudo passenger-install-nginx-module
# nginx startup scripts (aka nginx: unrecognized service)
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
sudo service nginx start
# update nginx config
sudo vi /opt/nginx/conf/nginx.conf
user orendon;
worker_processes 2;
http {
gzip on;
server_names_hash_bucket_size 64;
passenger_root /home/orendon/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/passenger-4.0.41;
passenger_ruby /home/orendon/.rbenv/shims/ruby;
server {
listen 80;
server_name some_site.domain.com;
root /home/orendon/apps/some_site/public/;
passenger_enabled on;
passenger_app_env production;
}
}
# Install PG (9.3.5)
sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3 postgresql-contrib-9.3
sudo -s postgresql
createuser -P -s -e pgdev
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment