(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

VMwareServer2上のUbuntuにRails(Apache2+Passenger)を入れてみた

Debianだとaptでgem1.2.0が入ったりして面倒。
そして、VMwareだと今のメインサーバーでは起こらなかったエラーがでてorzestだったのでUbuntuで。

Ubuntuインストール時に「LAMP」と「OpenSSH」を選択しただけで、他はまっさらな状態です。
まず、お約束。

$ sudo aptitude update
$ sudo aptitude upgrade

Rubyのインストール

$ sudo aptitude install -y ruby

gemのインストール。

$ sudo aptitude install -y rubygems
$ gem -v
1.3.5

Debianだとaptでは1.2.0が入るので色々と面倒くさい。
現在のメインサーバーではDebianで1.3.5にしたが、結構大変。
Ubuntuはここが楽なのでこれからRails環境はUbuntuで構築しようと思いました。

Railsのインストール。

$ sudo gem install rails

Passengerのインストール

$ sudo gem install passenger

Ruby1.8-devが足りないと言われる。

$sudo aptitude install -y ruby1.8-dev


もう一度

$ sudo gem install passenger

ちゃんと入りました。


Apacheモジュールも入れましょう。

$ sudo passenger-install-apache2-module

あれ?
CommandNotFoundが出る。
おっかしいなぁーと思い、Fileを探してみる。

$ find / -name passenger-install-apache2-module
/var/lib/gems/1.8/gems/passenger-2.2.7/bin/passenger-install-apache2-module
/var/lib/gems/1.8/bin/passenger-install-apache2-module

うん、ちゃんとある。

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

あぁ、PATHが通ってないのか。
何度も使う物じゃないんで、フルパス指定。

$ sudo /var/lib/gems/1.8/bin/passenger-install-apache2-module

「1」を入力してEnter
すると、Passengerさんは優しいので足りない物を教えてくれる。

* GNU C++ compiler... not found
* Ruby development headers... found
* OpenSSL support for Ruby... not found
* RubyGems... found
* Rake... found at /var/lib/gems/1.8/bin/rake
* Apache 2... found at /usr/sbin/apache2
* Apache 2 development headers... not found
* Apache Portable Runtime (APR) development headers... not found
* Apache Portable Runtime Utility (APU) development headers... not found


必要な物をそれぞれインストール。

$ sudo aptitude install -y g++
$ sudo aptitude install -y libopenssl-ruby1.8
$ sudo aptitude install -y apache2-threaded-dev


もう一度

$ sudo /var/lib/gems/1.8/bin/passenger-install-apache2-module

うん、OK。
最後にこんなメッセージが出ます。

                                                                                      • -

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/bin/ruby1.8

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.

                                                                                      • -

Deploying a Ruby on Rails application: an example

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:


ServerName www.yourhost.com
DocumentRoot /somewhere/public # <-- be sure to point to 'public'!

AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

/var/lib/gems/1.8/gems/passenger-2.2.7/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

Apacheの設定をこういう風に変えてねっていうメッセージです。
本当Passengerさんは優しいですね。


/etc/apache2/httpd.confに追記(この時点では空)

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/bin/ruby1.8


んで、DocumentRootに入れてやるためにRailsでdemoを作ってみる。

$cd /home/userName
$rails demo
Command Not Found
aptでRails入れてあげてね!

あっるぅぇー?
単純にPATHが通ってない(ぉ

$ ~/.bashrc


末尾に以下を追加。
#add 2009/11/30
export PATH=/var/lib/gems/1.8/bin:$PATH


んで、読み直し。

$ source ~/.bashrc


確認

$ rails -v
Rails 2.3.5

よし。


んで、

$Rails demo

色々Createされて成功。


次は今回はの中身。
今回は/etc/apache2/sites-available/defaultを直接編集。


んで、アクセス。
"Welcome aboard"画面がちゃんと出る。
とりあえず、これでRailsを弄る最低限の設定は終りました。