パッケージのインストール
rootで
yum install zlib-devel yum install openssl-devel yum install readline-devel yum install mysql-devel yum install mysql-server yum install libxml2-devel yum install pcre-devel yum install ImageMagick-devel yum install libxslt-devel
MySQLをUTF-8化
rootで/etc/my.cnfを編集して以下の内容を追記。
[mysqld] character-set-server=utf8 [mysql] default-character-set=utf8
MySQLサーバを起動。
service mysqld start chkconfig mysqld ok
アプリ実行用アカウントを作成
rootで
useradd application passwd application
Rubyをインストール
applicationアカウントで
cd mkdir git cd git git clone git://github.com/sstephenson/ruby-build.git cd ruby-build sudo ./install.sh cd git clone git://github.com/sstephenson/rbenv.git .rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source .bashrc rbenv install 1.9.3-p194 rbenv global 1.9.3-p194 gem install bundler rbenv rehash
rbenvでインストールするRubyのバージョンは
ruby-install --definitions
で出力される一覧から適当なものを選択する。
Nginxのインストール
applicationアカウントで
wget http://nginx.org/download/nginx-1.0.20.tar.gz tar xvzf nginx-1.0.20.tar.gz cd nginx-1.0.14 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module make
rootかsudoで
make install
rootかsudoで/etc/init.d/nginxファイルを作成して以下の内容を書く。
#! /bin/sh # chkconfig: 345 80 30 # description: Nginx web server set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon" NAME=nginx DAEMON=/usr/local/nginx/sbin/$NAME SCRIPTNAME=/etc/init.d/$NAME test -x $DAEMON || exit 0 d_start() { $DAEMON || echo -n " already running" } d_stop() { $DAEMON -s quit || echo -n " not running" } d_reload() { $DAEMON -s reload || echo -n " could not reload" } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "." ;; reload) echo -n "Reloading $DESC configuration..." d_reload echo "reloaded." ;; restart) echo -n "Restarting $DESC: $NAME" d_stop sleep 2 d_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 ;; esac exit 0
このファイルに実行権限を与えておく
chmod +x /etc/init.d/nginx
rootかsudoで/usr/local/nginx/conf/nginx.confを編集する。
user {アプリケーションアカウント名} # ... upstream application { server 127.0.0.1:3000; } #... location ^~/ { proxy_pass http://application; proxy_set_header Host $http_host; }
アプリケーションアカウントが公開鍵認証でサーバに入れるようにする
デプロイを実行するマシンにて鍵を作成する(すでに作成していない場合)
デプロイマシンにて
$ ssh-keygen
と打ってEnterをばしばし叩くと公開鍵~/.ssh/id_rsa.pubと秘密鍵~/.ssh/id_rsaが作成される。
公開鍵をアプリケーションサーバに登録する
デプロイマシンにて
scp ~/.ssh/id_rsa.pub {アプリケーション用アカウント}@{アプリケーションサーバ}:~/
サーバにてアプリケーション用アカウントで
cd mkdir .ssh chmod 700 .ssh mv id_rsa_pub .ssh/authorized_keys chmod 600 .ssh/authorized_keys
これでパスワードなしでログインできるようになったはずなので、一度ログアウトして再度アプリケーション用アカウントでサーバにsshでログインする。その際にパスワードが聞かれなければ成功。