さくらVPSにruby on rails3をインストールする方法

さくらのVPS(CentOS)を使ってruby on railsの環境を構築します。

まずはrubyのインストール

yum install -y rubyでもいいのですが、インストールできるバージョンが1.8.6なので
1.8.7以上じゃないとRails3をインストールできないので
makeでコンパイルして新しいバージョンをインストールします。

cd /usr/local/src
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
tar xvzf ruby-1.9.2-p180.tar.gz
cd ruby-1.9.2-p290.tar.gz
./configure --prefix=/usr
make
make install

wget→データをダウンロード。
tar xvzf→圧縮データを解凍。
./configure
make

でコンパイルしてインストールデータを作ります。
make install→インストール。
インストールされているかの確認

ruby -v
ruby 1.9.2p290

gemのインストール

rubyのパッケージ管理ソフトです。gemを使うことでupdateなど簡単にパッケージの管理ができるようになります。

wget http://rubyforge.org/frs/download.php/74619/rubygems-1.7.2.tgz
tar xvzf rubygems-1.7.2.tgz
cd rubygems-1.7.2
ruby setup.rb

インストールされているかの確認

gem -v
1.7.2

zlib-develのインストール

zlibがインストールされていないとgemがうまく動きません。
zlibは Zip や gzip に使われている圧縮アルゴリズムをライブラリ化したものです。

yum install zlib-devel
cd ruby-1.9.1-p429/ext/zlib
ruby extconf.rb --with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
make
make install

railsのインストール

これでやっとrailsのインストールができます。

gem install rails --include-dependencies

※3.1をインストールする場合

gem install rails --pre

インストールされているかの確認

rails -v
Rails 3.0.9

sqliteのインストール

railsを実行するにはデータベースは不可欠です。
今回はsqliteをインストールします。
新しいバージョンをインストールしないとエラーがでるので最新バージョンを持ってきて、コンパイルしてインストールします。

wget http://www.sqlite.org/sqlite-autoconf-3070602.tar.gz
tar xvzf sqlite-autoconf-3070602
cd sqlite-autoconf-3070602
./configure
make
make install

gemを使ってsqliteとrubyが接続できるようにします。

gem install sqlite3-ruby -- --with-sqlite3-include=/usr/local/include 
--with-sqlite3-lib=/usr/local/include 

undefined symbol: sqlite3_initialize のエラー

実際にRailアプリの製作をしようとscaffold,model,controllerを実行した時に
sqlite3_native.so: undefined symbol: sqlite3_initialize とエラーが出ることがあります。
その場合は、

vi ~/.bashrc

で一番下にLD_LIBRARY_PATHを追加で記入します。

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

設定を反映してげます。

source ~/.bashrc

railsを動かしてみる

実際のrailsを動かしてみましょう。

rails new demo
rails server

動いたら成功です。

今回の一覧の流れを動画(make中省略)

opensslのエラーについて

Railsでアプリを作りはじめ、scaffoldで土台を作り上げて、ホームページにアクセスしてみると

no such file to load -- openssl

opensslのファイルがないとのエラーがでます。

openssl-develのインストール

yum install -y openssl-devel

rubyでopensslを使えるようにする

rubyのフォルダに移動してopensslを使えるようにします。

cd ruby-x.x.x/ext/openssl
ruby extconf.rb
make
make install

これで、opensslがrubyでも使えるようになります。

rubyonrails+apache+passenger

MongorelやWeblickといったウェブサーバーがありますが、今一番安定で早いといわれているのが
passenger+apacheのウェブサーバーです。

gemを使ってインストールします。

gem install passenger

passengerのapacheモジュールをコンパイルして実行します。

passenger-install-apache2-module

後は、説明にそってEnterを押していけば大丈夫。


最後にこのページの方法でさくらVPSにrubyonrails3を入れた場合は

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/
ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby

をhttpd.confに書き込めと出てきます。
「Please edit your Apache configuration file, and add these lines:」
apacheを入れていない方は

yum install httpd

apacheの設定ファイルを変更

vi /etc/httpd/conf/httpd.conf

で3行を記入
後はVirtualHostの設定をしてあげます。
ここで、大切なのがDocumentrootでpublicを指定してあげること

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /somewhere/public    
<Directory /somewhere/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>

これでapacheを再起動して完了です。


コメントする