さくらの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を再起動して完了です。