rails3 on ubuntu wiht Amazon EC2
色々はまったのでメモ。
ubuntu+rvm+zlibは鬼門かも。
- AMIの起動Community AMIs にて "ubuntu-lucid" を検索-AMIの起動
Community AMIs にて "ubuntu-lucid" を検索し、Manifest を降順に整列して最新のものを選択。
ssh -i AWS_KEY.pem ubuntu@ec2-***.amazonaws.com
- rootパスワードの変更
sudo passwd root
- パッケージの更新
sudo aptitude update sudo aptitude safe-upgrade sudo aptitude install unzip emacs
- AMI Toolsのインストール
cd /usr/local/src/ sudo curl -O http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip sudo unzip ec2-ami-tools.zip -d /usr/local
- Amazon EC2 API Toolsのインストール
cd /usr/local/src sudo wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip sudo unzip ec2-api-tools.zip cd ec2-api-tools-1.4.2.2 sudo cp -r bin /mnt sudo cp -r lib /mnt
- jreのインストール
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts
export EC2_HOME=/mnt export PATH=$PATH:$EC2_HOME/bin export EC2_PRIVATE_KEY=$EC2_HOME/pk-***.pem export EC2_CERT=$EC2_HOME/cert-***.pem export JAVA_HOME=/usr/lib/jvm/java-6-sun export EC2_AMITOOL_HOME=/usr/local/ec2-ami-tools-1.3-*** export PATH=$PATH:${EC2_AMITOOL_HOME:-EC2_HOME}/bin source ~/.bashrc [return]
確認
source ~/.bash_profile ec2ver which ec2-bundle-vol
- gitのインストール
sudo aptitude install git-core
- rubyのインストール
sudo aptitude install ruby
- gemのインストール
cd /usr/local/src sudo wget http://rubyforge.org/frs/download.php/74234/rubygems-1.5.2.tgz sudo tar xvzf rubygems-1.5.2.tgz cd rubygems-1.5.2/ sudo ruby setup.rb
シンボリックリンクの作成
cd /usr/bin sudo ln -s /usr/bin/gem1.8 gem sudo gem update --system
- rvmのインストール
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
.rvmrcに以下を追加
export rvm_pretty_print_flag=1
.bashrcに以下を追加
# rvmのインストールで既に.bash_profileに追加済みなら不要 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
- パスを適用
source ~/.bash_profile
- rvmを最新化
rvm get head rvm reload
- rubyのインストール
# For Ruby (MRI & ree) & ruby-head, you should install the following OS dependencies sudo aptitude install build-essential bison autoconf # If you wish to install rbx and/or Ruby 1.9 head (MRI) (eg. 1.9.2-head), then you must install and use rvm 1.8.7 first. rvm install 1.8.7 rvm package install readline rvm package install zlib rvm package install openssl # then ruby 1.9.2 rvm install 1.9.2 --default -C --with-openssl-dir=$rvm_path/usr --with-readline-dir=$rvm_path/usr --with-zlib-dir=$rvm_path/usr
- railsのインストール
gem install rails
- mysqlのインストール
sudo aptitude install mysql-server mysql-client libmysqlclient-dev gem install mysql # /etc/mysql/my.cnfの編集 [client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set=utf8 # 追加
- apacheのインストール
sudo aptitude install apache2 sudo /etc/init.d/apache2 start
- passengerのインストール
gem install passenger sudo aptitude install libcurl4-openssl-dev libssl-dev libopenssl-ruby apache2-prefork-dev libapr1-dev libaprutil1-dev passenger-install-apache2-module
- passenger設定ファイル
# /etc/apache2/mods-available/passenger.load LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.6/ext/apache2/mod_passenger.so # /etc/apache2/mods-available/passenger.conf PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.6 PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.2-p180/ruby
- apache設定ファイル
cd /etc/apache2/mods-enabled sudo ln -s ../mods-available/passenger.load passenger.load sudo ln -s ../mods-available/passenger.conf passenger.conf # /etc/apache2/sites-availables/*** <VirtualHost *:80> ServerAdmin test@test.com ServerName test.com # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. LogLevel warn SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(js)|(css)$" no_log CustomLog /var/log/apache2/test.com/access.log combined env=!no_log ErrorLog /var/log/apache2/test.com/error.log DocumentRoot /home/ubuntu/rails/test.com/public <Directory /home/ubuntu/rails/test.com/public> Allow from all Options FollowSymLinks -MultiViews </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.test.com Redirect permanent / http://test.com/ </VirtualHost>
- siteの有効化
sudo a2ensite ***
- sendmailのインストール
sudo aptitude install sendmail
- ImageMagickのインストール
sudo aptitude install imagemagick
- RMagickのインストール
sudo aptitude install libmagick9-dev gem install rmagick
- AMIの登録
# 証明書の転送 scp -i AWS_KEY.pem cert-***.pem ubuntu@ec2-***.compute-1.amazonaws.com:/home/ubuntu scp -i AWS_KEY.pem pk-***.pem ubuntu@ec2-***.compute-1.amazonaws.com:/home/ubuntu # sshで接続、証明書を/mntディレクトリへ移動 ssh -i ***.pem ubuntu@*** sudo cp cert-***.pem /mnt sudo cp pk-***.pem /mnt cd /mnt/ # ERROR: You need to be root to run /usr/local/ec2-ami-tools-1.3-57676/lib/ec2/amitools/bundlevol.rbと怒られるのでrootに su source /home/ubuntu/.bash_profile # イメージを作成する ec2-bundle-vol -d /mnt --cert cert-***.pem --privatekey pk-***.pem --user *** --fstab /etc/fstab # Please specify a value for arch [i386]:と聞かれたらそのままリターン amitools/crypto.rb:13:in `require': no such file to load -- openssl (LoadError)とエラーになるようなら sudo apt-get install libopenssl-ruby # S3にイメージを送る ec2-upload-bundle --bucket BUCKET_NAME --manifest image.manifest.xml --access-key *** --secret-key *** # イメージを登録する ec2-register BUCKET_NAME/image.manifest.xml -n BUCKET_NAME --cert dert-***.pem --private-key pk-***.pem # 自分で登録したAMIを確認したい時は ec2-describe-images -o self # AMIの削除 ec2-deregister ami-***