-
-
Save jnstq/411642 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
# Author: Michael van Rooijen | |
# Description: | |
# A Rails Stack Installer for Ubuntu 8.04/9.04 with the light-weight and fast NginX Web Server. | |
# This shell script will install a basic Rails Stack with a bunch of useful and commonly used utilities. | |
# It will install Ruby Enterprise Edition with Phusion Passenger (Reduces Rails Application Memory Usage By Approx. 33%) | |
# It will install some essential gems like mysql, sqlite, postgres etc. | |
# It will install NginX Web Server | |
# It will install the MySQL database | |
# It will install Git | |
# It will install these utilities: ImageMagick, FFMpeg, Memcached | |
# It will install these smaller utilities: rsync, gpm, tree and some more. | |
# It will setup the "gem" command to work with Ruby Enterprise Edition's Gems instead of Ruby 1.8 (default) | |
# | |
# Be sure to read the USAGE and NOTICE sections below for more information! | |
# | |
# | |
# USAGE / INSTALLATION | |
# | |
# Just copy this file, or it's contents to a file on your server and run it. | |
# You will get prompted multiple times for confirmation or to make specific choices. | |
# All in all, takes only a little while for the whole installation process to complete, and most of it goes automatically. | |
# | |
# == process == | |
# SSH to your remote server and type: "sudo nano installer.sh" | |
# Copy the content of this file into the nano editor and save it | |
# This should create a file on the server called installer.sh | |
# To execute this, simply type: "sh installer.sh" | |
# | |
# The installer will now run and install everything for your. | |
# You will be prompted only a few times during the process. | |
# Just follow the instructions during the installation and go with any "default" settings that get prompted. | |
# Select "1" when you get prompted with the option to either let Phusion Passenger Download, Compile and Install NginX or when you want to do it manually. | |
# This script insists you let Phusion Passenger handle it. Also let Phusion Passenger install Ruby Enterprise Edition into the /opt/ directory, (which is default, just hit enter on prompt). | |
# | |
# | |
# NOTICE | |
# | |
# Ruby 1.8's gems will be available under "rgem" (rubygem). So to install a gem for Ruby 1.8 you'd use: "rgem install [gem-name]" | |
# Ruby Enterprise Edition's gems will be available under "gem list" (RubyEnterpriseEditionGem). To install a gem for REE you'd use: "gem install [gem-name]" | |
# | |
# This installer was written for Ubuntu Server Edition 8.04 / 9.04 | |
# | |
# | |
# INFO | |
# | |
# The purpose of this Rails Stack setup is to enable FASTER request handling, a LOT less memory consumption than for example Apache2 and Ruby1.8, very LIGHTWEIGHT and more. | |
# | |
# NginX: | |
# http://nginx.net/ | |
# | |
# Ruby Enterprise Edition: | |
# http://www.rubyenterpriseedition.com/ | |
# | |
# Phusion Passenger: | |
# http://www.modrails.com/ | |
# | |
# First the system will download any initial updates and install them. | |
sudo apt-get update -y | |
sudo apt-get dist-upgrade -y | |
sudo apt-get install build-essential -y | |
# The following utilities will be downloaded, compiled and installed on Ubuntu. | |
# - Ruby 1.8 / RDOC / RI / IRB | |
# - OpenSSL and other SSL Related Software | |
# - MySQL Database | |
# - Rsync, GPM, Tree, Curl | |
# - Git | |
# - FFMpeg, Memcached | |
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev git-core curl gitweb ruby rdoc ri irb libopenssl-ruby1.8 ruby1.8-dev zlib1g-dev libssl-dev libreadline5-dev libxslt1-dev libxml2-dev ffmpeg memcached rsync gpm tree -y | |
# ImageMagick | |
sudo apt-get install libperl-dev gcc libjpeg62-dev libbz2-dev libtiff4-dev libwmf-dev libz-dev libpng12-dev libx11-dev libxt-dev libxext-dev libxml2-dev libfreetype6-dev liblcms1-dev libexif-dev perl libjasper-dev libltdl3-dev graphviz gs-gpl pkg-config | |
mkdir -p /root/source && /root/source | |
curl -O http://image_magick.veidrodis.com/image_magick/ImageMagick-6.6.1-9.tar.gz | |
tar xvfz ImageMagick-6.6.1-9.tar.gz && rm -rf ImageMagick-6.6.1-9.tar.gz | |
cd ImageMagick-6.6.1-9 | |
./configure | |
make | |
make install | |
cd .. | |
ldconfig | |
# Install apachebench | |
# sudo apt-get install apache2-utils | |
# Download, Extract, and Install RubyGems 1.3.5 and Ruby Enterprise Edition | |
# Removes the installation files after the actual installation process is complete. | |
cd /home/ | |
sudo wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz | |
sudo tar xzvf rubygems-1.3.5.tgz | |
sudo ruby rubygems-1.3.5/setup.rb | |
sudo rm -rf rubygems-1.3.5.tgz rubygems-1.3.5 | |
sudo wget http://rubyforge.org/frs/download.php/58677/ruby-enterprise-1.8.6-20090610.tar.gz | |
sudo tar xzvf ruby-enterprise-1.8.6-20090610.tar.gz | |
sudo ./ruby-enterprise-1.8.6-20090610/installer | |
sudo rm -rf ruby-enterprise-1.8.6-20090610 ruby-enterprise-1.8.6-20090610.tar.gz | |
# Installing the Phusion Passenger NginX Module, along with the NginX Web Server | |
# This will automatically add a line of code inside the configuration file that will ensure that | |
# All Rails applications using Phusion Passenger, will make use of Ruby Enterprise Edition instead of Ruby 1.8.6 | |
sudo /opt/ruby-enterprise-1.8.6-20090610/bin/passenger-install-nginx-module | |
# Set up a Symlink for Ruby 1.8. Cal it from gem (example: 'rgem install [gemname]') | |
sudo ln -s /usr/bin/gem1.8 /usr/bin/rgem | |
# Set up a Symlink for Ruby Enterprise Edition Gems. Call it from reegem (example: 'gem install [gemname]') | |
sudo ln -s /opt/ruby-enterprise-1.8.6-20090610/bin/gem /usr/bin/gem | |
sudo ln -s /opt/ruby-enterprise-1.8.6-20090610 /opt/ruby | |
# Updating the RubyGems system for both Gem and ReeGem | |
sudo /opt/ruby/bin/gem update --system | |
sudo rgem update --system | |
# Preinstalling a couple of gems to both Gem and ReeGem (Excluding the Ri and Rdoc to improve installation speed) | |
# sudo gem install rails rspec rdoc mysql postgres sqlite3-ruby javan-whenever -d --no-rdoc --no-ri | |
# sudo rgem install rails rspec rdoc mysql postgres sqlite3-ruby javan-whenever -d --no-rdoc --no-ri | |
sudo /opt/ruby/bin/gem install mysql whenever rspec-rails -d --no-rdoc --no-ri | |
echo "Installing bundler" | |
/opt/ruby/bin/gem install bundler | |
echo "Create deploy user" | |
adduser deploy | |
# Refer to slicehost's blog post on making it very easy to start/stop/restart the NginX Web Server | |
echo "============================================================" | |
echo "Please refer to the following blogpost by SliceHost. It's about making Start/Stop/Restarting NginX Web Server easy using a script." | |
echo "http://articles.slicehost.com/2008/5/13/ubuntu-hardy-adding-an-nginx-init-script" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment