Railsセットアップ(CentOS on VMWare)

VMWare上でのRailsセットアップをやったので、今のところまでのメモ書きを載せます。
ローカル側はWindowsXP
サーバがCentOS5.2 on VMWare
Railsは2.2でした。

Ruby

Ruby-1.8.7をインストール。
今回はデフォルトでいくことに。
/usr/local/bin/rubyができる。

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
tar xvfz ruby-1.8.7-p72.tar.gz
cd ruby-1.8.7-p72.tar
./configure
make
make test
sudo make install

OpenSSL

OpenSSLのインストール。
RubyのソースインストールだとOpenSSLは別途インストールが必要な模様。

sudo yum install openssl openssl-devel
cd ruby-1.8.7-p72/ext/openssl/
ruby extconf.rb
make
sudo make install

ちなみに、入れないで作業進めたらWEBRick起動のタイミングでこんなエラーが出た。

script/server
=> Booting WEBrick...
/usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:259:in `require_frameworks': no such file to load -- openssl (RuntimeError)
        from /usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:133:in `process'
        from /usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send'
        from /usr/local/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run'
        from /home/qnzm/tmp/demo/config/environment.rb:13

RubyGems

wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xfvz rubygems-1.3.1.tgz
cd rubygems-1.3.1
sudo ruby setup.rb

Rails

gemで。

sudo gem install rails

試しにサンプルを作ろうと試みる。

rails demo
cd demo
script/server
=> Booting WEBrick...
=> Rails 2.2.2 application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2009-01-13 16:30:31] INFO  WEBrick 1.3.1
[2009-01-13 16:30:31] INFO  ruby 1.8.7 (2008-08-11) [i686-linux]
[2009-01-13 16:30:31] INFO  WEBrick::HTTPServer#start: pid=27131 port=3000

サーバ起動。
アクセスしようとしてもタイムアウトになる。
iptablesサービス止めたら繋がったので、パケット破棄されているのだと判断。

iptablesいじってポート3000を通す

iptablesは下記サイト参考にさせていただいて設定してみる。


とりあえず/etc/sysconfig/iptablesはファイルごと退避しておく。(->iptables.backup)
その後、HTTP(80)、SSH(22)、WEBRick(3000)、それとメール関連、ローカルホスト関連は通して、それ以外の外部インプットを破棄…になることを意図して設定してみる。

su
iptables -F
iptables -P INPUT DROP 
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT

iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -s 192.168.1.1/16 -j ACCEPT 
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
service iptables save

ローカルからVMWareのポート3000にアクセスして、デフォルトページが表示されるところまで確認。
(iptablesの設定が正常動作しているか、細かくは見ていない)

参考にしました

追記(2009/01/21)

「内部から行ったアクセスに対する外部からの返答アクセスを許可」に関するiptable指示を追記。

追記(2009/01/25)

MySQLの設定他を新たにおこないました。(http://d.hatena.ne.jp/qnzm/20090125/1232894044)