-
-
Save kylebragger/437998 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
after running: | |
- sudo gem install rails --no-ri --no-rdoc | |
- mkdir -p /var/www | |
- set up nginx and virtual host |
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
#!/bin/sh | |
# | |
# new_server.sh | |
# Author: Sam Soffes | |
# Created: 02/25/2010 | |
# Updated: 05/26/2010 | |
# | |
# Author: Kyle Bragger | |
# Forked: 06/14/2010 | |
# | |
# - Updated to not install pg (6/14) | |
# | |
# | |
# This script installs everything needed to run a Ruby on Rails application on | |
# Nginx (with Passenger) and PostgreSQL on CentOS 5.4 and 5.5. init.d scripts are installed | |
# for Ngnix and PostgreSQL as well. Git and Bundler are also installed as many | |
# applications use Bundler for gem dependencies and git is often used in Gemfiles. | |
# ImageMagick is also installed. Port 80 and 443 are also opened in IPTables. | |
# | |
# The install takes about 20 minutes on average. | |
# | |
# All of the versions are the latest as of 05/25/2010 (with the exception of Nginx due | |
# to an incompatibility with Passenger). The lastest patch level for Ruby 1.8.7 is used. | |
# This is due to some applications having incompatibilities with Ruby 1.9.1. | |
# | |
# To easily add a new virtual host, add a file with `.conf` as its extension to | |
# `/usr/local/nginx/conf/virtual_hosts/`. | |
# | |
# Example virtual host: http://gist.github.com/314883#file_example.conf | |
# | |
# To run this script, simply run the following commands as root: | |
# $ wget http://gist.github.com/raw/314865/new_server.sh | |
# $ chmod +x new_server.sh | |
# $ ./new_server.sh | |
# | |
# You will need to press "y" and enter twice when yum prompts you to install updates and | |
# necessary packages at the beginning. You can leave it and let it do its thing after that. | |
# | |
# General | |
set -e | |
# Note: changing prefix doesn't quite work due to my lack of shell scripting knowledge, | |
# so don't change it :) | |
export PREFIX=/usr/local | |
cd ~ | |
# Install necessary dependencies all at once | |
yum update | |
yum install gcc gcc-c++ make zlib-devel pcre-devel.x86_64 openssl-devel.x86_64 readline-devel libpng-devel libjpeg-devel libtiff-devel libwmf-devel lcms-devel freetype-devel ghostscript-devel curl-devel libxslt-devel | |
# Git | |
wget http://kernel.org/pub/software/scm/git/git-1.7.1.tar.gz -O- | tar xz | |
cd git-1.7.1 | |
./configure --prefix=$PREFIX | |
make | |
make install | |
cd .. | |
# Ruby | |
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz -O- | tar xz | |
cd ruby-1.8.7-p249 | |
./configure --prefix=$PREFIX | |
make | |
make install | |
cd .. | |
# RubyGems | |
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.6.tgz -O- | tar xz | |
cd rubygems-1.3.6 | |
ruby setup.rb | |
cd .. | |
# Nginx with SSL and Passenger | |
gem install passenger --version=2.2.11 --no-ri --no-rdoc | |
wget http://nginx.org/download/nginx-0.8.37.tar.gz -O- | tar xz | |
cd nginx-0.8.37 | |
./configure --with-http_ssl_module --add-module=/usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/nginx | |
make | |
make install | |
cd .. | |
wget -d http://gist.github.com/raw/143136/nginx | |
mv nginx /etc/init.d/nginx | |
chmod +x /etc/init.d/nginx | |
chkconfig --add nginx | |
groupadd nginx | |
useradd nginx -g nginx | |
rm -f $PREFIX/nginx/conf/nginx.conf | |
wget -d http://gist.github.com/raw/314883/nginx.conf | |
mv nginx.conf $PREFIX/nginx/conf/nginx.conf | |
mkdir $PREFIX/nginx/conf/virtual_hosts | |
# ImageMagick | |
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.6.2-4.tar.gz -O- | tar xz | |
wget http://sourceforge.net/projects/gs-fonts/files/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz/download -O- | tar xz | |
mv -f fonts $PREFIX/share/ghostscript | |
cd ImageMagick-6.6.2-4 | |
./configure --prefix=$PREFIX --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --with-gs-font-dir=$PREFIX/share/ghostscript/fonts | |
make | |
make install | |
cd .. | |
# Bundler | |
gem install bundler --no-ri --no-rdoc | |
# Clean up | |
rm -rf git-1.7.1 ruby-1.8.7-p249 rubygems-1.3.6 nginx-0.8.37 ImageMagick-6.6.2-4 | |
# TODO but what about fonts/ ? | |
# Open ports (and close everything else) | |
/sbin/iptables -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT | |
/sbin/iptables -I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT | |
/sbin/iptables -I INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT | |
/sbin/iptables -I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT | |
service iptables save | |
# Start everything up | |
service nginx start | |
# Wrap things up | |
useradd deploy -g nginx | |
mkdir -p /var/www | |
chown -R deploy /var/www | |
chgrp -R nginx /var/www | |
chmod -R 775 /var/www | |
# Gems | |
gem install rails --no-ri --no-rdoc | |
# after installing mysql (but don't start it... TODO can this even install w/o mysql install?) | |
#gem install mysql --no-ri --no-rdoc |
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
#!/bin/sh | |
# | |
# z_after.sh | |
# Author: Sam Soffes | |
# Created: 02/25/2010 | |
# Updated: 05/26/2010 | |
# | |
# This script is more specific to my needs. I run it after new_server.sh. | |
# To get the pg gem to install, I generally have to restart my shell so | |
# the path to pg_config works. | |
# | |
# Merged into new_server.sh (KB 6/14) | |
yum install sqlite-devel | |
gem install pg --no-ri --no-rdoc | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We need to get you setup w/ Fabric or Capistrano :)