やりたいことをやってゆく

プログラミング関連に興味のあるエンジニアのブログ。日々学んだことをアウトプットしてゆきます。

Amazon Linux + Apache2.4 + MySQL5.6 + Ruby 2.1 の新しめな環境を構築する

以下のAMIをインストールしたところから。
AMI:amzn-ami-minimal-pv-2014.03.2.x86_64-ebs (ami-63dc9262)
※Micro Instance または、EBS 2G にしているとRubyインストール時に足りなくなるので余裕を持たせること。

→この環境構築時は、m1.midium と 4G で構築。

#時刻を日本時間へ ========================================

sudo cp /usr/share/zoneinfo/Japan /etc/localtime

#まずはOS更新 ========================================
sudo yum -y update

#MySQL(5.6)のインストール ========================================
# amznリポジトリに5.6がないので登録
sudo yum install -y http://repo.mysql.com/mysql-community-release-el6-4.noarch.rpm

# MySQL初期化に必要(minimalの場合必要)
sudo yum install -y perl-Data-Dumper

# インストール
sudo yum install -y mysql-community-server

# 起動
sudo service mysqld start
sudo chkconfig mysqld on

#Apache(2.4)のインストール ========================================
sudo yum install -y httpd24

# 起動
sudo service httpd start
sudo chkconfig httpd on

# rbenv インストール ========================================
# 必要な諸々をインストール
sudo yum install -y git gcc make zlib-devel libxml2-devel libxslt-devel readline-devel openssl-devel gcc-c++ httpd24-devel curl-devel sqlite-devel

# rbenvをインストール
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL -l

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build/
sudo ./install.sh

# Ruby インストール ========================================
cd ~
rbenv install 2.1.2
rbenv rehash
rbenv global 2.1.2
# バージョンの確認は↓
# rbenv install list

gem install bundler 
 
# Passenger インストール ========================================
gem install passenger
rbenv rehash

passenger-install-apache2-module
# 最後に「Almost there!」とConfigの内容が表示されるのでメモること。

# コンフィグを設定(先ほどメモした内容)
cd /etc/httpd/conf.d/
sudo vi passenger.conf


   LoadModule passenger_module /home/ec2-user/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /home/ec2-user/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/passenger-4.0.45
     PassengerDefaultRuby /home/ec2-user/.rbenv/versions/2.1.2/bin/ruby
   </IfModule>

# Apacheの設定

sudo vi virtualhost.conf
   <VirtualHost *:80>
      ServerName 『ホスト名』
      DocumentRoot /var/www/『アプリ名』/public
      <Directory "/var/www/『アプリ名』/public">
         AllowOverride all
         Options -MultiViews
         Require all granted
      </Directory>
   </VirtualHost>
 
# アプリデプロイ ========================================
cd /var/www
sudo mkdir 『アプリ名』
sudo chmod 557 『アプリ名』 #ec2-userでは権限足りないのでとりあえず
rails new 『アプリ名』 
 
cd『アプリ名』 
bundle install
 
# 確認 ========================================
sudo service httpd restart 
http://『ホスト名』/
 
#ツッコミ歓迎です。