CentOS5.5にrails環境つくるよ(Passenger)

http://www.thoughtpolice.co.uk/vmware/
からダウンロードできるCentOS5.5にrails環境を作るまでのメモ。
ほかの所でもまとめられているのを知りつつも。
# rootで作業してます。

rubyのインストール。
rubyyumで入れると、バージョンが古いので、
最新のソースをビルドしてぶち込む。
その前に必要なものを一式ぶち込む。

# add rpmforge repository
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm --import RPM-GPG-KEY.dag.txt

# install building tool
yum install gcc
yum install checkinstall

rubyのソースからrpm作る。

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p330.tar.bz2
tar xzvf ruby-1.8.7-p330.tar.bz2
cd ruby-1.8.7-p330
./configure --prefix=/usr
make
checkinstall -R --fstrans=no

できたrpmをインストール。

cd /usr/src/redhat/RPMS/i386
rpm -i ruby-1.8.7-p174-1.i386.rpm

gemが動かないので足りてないライブラリをインストール

yum install zlib-devel
cd /root/ruby-1.8.7-p330/ext/zlib
ruby extconf.rb --with-zlib-include=/usr/include -with-zlib-lib=/usr/lib
make
make install

gemsが入ってなければ↓
rubyインストールしたら勝手に入ったと記憶。

wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
tar xvf rubygems-1.4.2.tgz
ruby setup.rb

passengerとpassengerをapacheに組み込むときに使うやつをごそっと。

gem install passenger
yum install gcc-c++
yum install curl-devel
yum install openssl-devel
yum install httpd-devel
yum install apr-devel
yum install apr-util-devel

cd /tmp/ruby-1.8.7-p249/ext/openssl
ruby extconf.rb --with-openssl-dir=/usr/local/ssl
make
make install
passenger-install-apache2-module

passenger-install-apache2-module
やると対話形式でインストールされる。特に設定はなかったと思うので、enter連打でOK。
↓をhttpd.confに追記。

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.2
PassengerRuby /usr/bin/ruby

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

railsをインストール

gem install rails

sqlite3-rubyをインストール。
sqliteのバージョンが古いので、sqlite3-rubyのインストールができないので、sqliteをソースからインストール

wget http://www.sqlite.org/sqlite-autoconf-3070400.tar.gz
tar xvf sqlite-autoconf-3070400.tar.gz
cd sqlite-autoconf-3070400
./configure --prefix=/usr
make
make install
gem install sqlite3-ruby

mysql使いたいから

yum install mysql-server mysql-devel
gem install mysql2
# install mysql-ruby
wget http://rubyforge.org/frs/download.php/69181/mysql-ruby-2.8.2.tar.gz
rat xvf mysql-ruby-2.8.2.tar.gz
cd mysql-ruby-2.8.2
ruby extconf.rb --with-mysql-config
make
make install

これで環境構築は完了のはず。
試しにrailsアプリを動かしてみる。(httpd.confの書き換え忘れずに。)

rake new aaa /var/www/rails

で、アクセスしてみる。

production環境で動くので、development環境で動くように。
httpd.confに

RackEnv development

を追加。

mysqlを使う設定
config/database.ymlを変更。

development:
  adapter: mysql
  username: root
  password:
  host: 127.0.0.1
  database: aaa

hostはlocalhostって書くとダメらしい。

mysqlの起動とdb作成

/etc/init.d/mysqld start
rake db:create

これでOK.
間違ってたら指摘してね!