2012-10-14

Ruby 1.9 on Debian "Wheezy" インストール/設定メモ

Debian "Wheezy" + Ruby 1.9 + Rails 3 + Passengerで開発環境を構築してみる。
ので、メモ。



ちなみに、WheezyのRubyパッケージ名は"ruby1.9.1"となっているけど、実際にインストールされるrubyのバージョンは1.9.3のもよう。

まずは、ruby1.9.1パッケージをインストール。

aptitude install ruby1.9.1 ruby1.9.1-dev ruby1.9.1-example ruby1.9.1-full rubygems1.9.1
インストールされたrubyバージョンを一応確認。
# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

# gem -v
1.8.23
もしここでrubyバージョンが1.8とか、別のバージョンが表示された場合には、
# update-alternatives --config ruby
などのコマンドで使用バージョンの切り替えが必要。
うちの環境では、rubyのインストールは初めてなのでバージョン切り替えの必要はなし。

続いて、Ruby on Railsをインストール。

Debianパッケージに含まれているRailsはちょっと古いものなので、gemからインストールします。
# gem install rails
 と、ここでエラーメッセージが。
file 'lib' not found
 rdocを最新版にすると解決するようなので、下記コマンドで対処。
# gem install rdoc rdoc-data
# gem install rails

最後にPassengerをインストール。

Passenegrもgemでインストールします。
# gem install passenger
使っているWebサーバはApacheなので、モジュールを下記コマンドでインストール
# passenger-install-apache2-module
コマンド実行後、ご丁寧に説明が。
This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.
 ここでEnterを叩くと依存関係チェックが走る。
Checking for required software...

 * GNU C++ compiler... found at /usr/bin/g++
 * Curl development headers with SSL support... not found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * rack... found
 * 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

Some required software is not installed.
But don't worry, this installer will tell you how to install them.

Press Enter to continue, or Ctrl-C to abort.
いくつかnot foundがあったので、aptでパッケージをインストールします。
Enterを叩くと、インストールするためのコマンドが表示されるので、それに従ってインストールしていきます。
Installation instructions for required software

 * To install Curl development headers with SSL support:
   Please run apt-get install libcurl4-openssl-dev or libcurl4-gnutls-dev, whichever you prefer.

 * To install Apache 2 development headers:
   Please run apt-get install apache2-prefork-dev as root.

 * To install Apache Portable Runtime (APR) development headers:
   Please run apt-get install libapr1-dev as root.

 * To install Apache Portable Runtime Utility (APU) development headers:
   Please run apt-get install libaprutil1-dev as root.

If the aforementioned instructions didn't solve your problem, then please take
a look at the Users Guide:

  /var/lib/gems/1.9.1/gems/passenger-3.0.17/doc/Users guide Apache.html
一旦抜けるので、そのままパッケージをインストール。
# aptitude install libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev
 改めてpassengerモジュールをインストールします。
# passenger-install-apache2-module
今度は依存関係も問題なく通過するはず。
依存関係で問題なければ、モジュールのコンパイルが始まります。
コンパイルが終わると、ご親切にもモジュール実行の手順が表示されます。
The Apache 2 module was successfully installed.

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

   LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
   PassengerRoot /var/lib/gems/1.9.1/gems/passenger-3.0.17
   PassengerRuby /usr/bin/ruby1.9.1

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!

--------------------------------------------
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
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /somewhere/public   
      <Directory /somewhere/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </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.9.1/gems/passenger-3.0.17/doc/Users guide Apache.html

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

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
この手順に従って、Apacheモジュールを読み込む設定をおこないます。
# cd /etc/apache/mods-available/
# vi passenger.load
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-3.0.17/ext/apache2/mod_passenger.so

# vi passenger.conf
<IfModule mod_passenger.c>
    PassengerRoot /var/lib/gems/1.9.1/gems/passenger-3.0.17
    PassengerRuby /usr/bin/ruby1.9.1
    PassengerEnabled off
</IfModule>
passenger.loadとpassenger.confを設定し終わったら、モジュールを有効にしてApacheを再起動します。
# a2enmod passenger
# /etc/init.d/apache2 restart
とりあえず、サーバの設定は完了。

Ruby on Rails開発環境作成

開発用のRails環境を作成します。
$ cd $HOME/public_html
$ /var/lib/gems/1.9.1/gems/railties-3.2.8/bin/rails new devenv
 これをキックするApacheの設定をします。
# vi /etc/apache/site-available/000-devenv
Listen 8000
<VirtualHost 192.168.1.2:8000>
    ServerAdmin webmaster@localhost
    ServerName 192.168.1.2

    RailsEnv development
        DocumentRoot /home/yusuke/public_html/devenv/public
        <Directory />
                Options FollowSymLinks
                AllowOverride all
        PassengerEnabled on
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/devenv.error.log
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/devenv.access.log combined
</VirtualHost>

# a2ensite 000-devenv
http://192.168.1.2:8000/ にアクセスできたら完了です。

0 件のコメント:

コメントを投稿