ブログトップ 記事一覧 ログイン 無料ブログ開設

乱筆乱文お許し下さいorz このページをアンテナに追加 RSSフィード

2009-11-30

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:

<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>

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されて成功。


次は今回は<VirtualHost></VirtualHost>の中身。

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


んで、アクセス

"Welcome aboard"画面がちゃんと出る。

とりあえず、これでRailsを弄る最低限の設定は終りました。