2010年5月19日水曜日

第20回 PHP5.3.2のインストール

上記のように、PHPはwww.sunfreeware.comから、php-4.4.5、php-5.2.1、php-5.2.13をダウンロードすることができるが、これまで使用してきた下記に示す環境では、要件にあわせることが難しい。

# /usr/apache2/bin/httpd -v
Server version: Apache/2.0.63
Server built: Jan 24 2009 07:36:42

# /usr/sfw/bin/gcc -v
Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/specs
Configured with: /builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++ --enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

このため、PHP Version 5.3.2をソースコードからダウンロードして、コンパイルしたものをインストールする。また、OracleDBに接続する環境も構築する。OracleDBに接続するためにはOracleのライブラリを参照してコンパイルしなければならない、そのためのユーザーと、コマンドからもPHPが実行できるユーザーを作成して、それを「php」とする。

  1. PHPのインストール手順
    1. rootユーザーでログインして「php」グループ、ユーザーを作成する。その際、作成したユーザーがoracleのライブラリを参照できるように、セカンダリユーザーグループに「oinstall」を指定する。プロファイルはoracleのものを流用して、後でインストーラが作成する「/opt/php/bin」にパスを通しておく。
    2. # groupadd php
      # useradd -g php -G oinstall -d /export/home/php -m php
      64 ブロック
      # passwd php
      新しいパスワード:
      新しいパスワードを再入力してください:
      passwd: php のパスワードが変更されました
      # mkdir -p /opt/php
      # cp /export/home/oracle/.profile /export/home/php/.profile

      # vi /export/home/php/.profile

      PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH

      PATH=/opt/php/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH

    3. 「php」ユーザーになって、PHP Version 5.3.2をダウンロードから、「configure」を実行して「Makefile」の作成、「configure」より作成された「Makefile」によってソースファイルのコンパイルまでを行う。
    4. # su - php
      $ wget http://jp2.php.net/get/php-5.3.2.tar.gz/from/jp.php.net/mirror
      ...
      $ gzip -d php-5.3.2.tar.gz
      $ tar xvf php-5.3.2.tar
      ...
      $ cd php-5.3.2
      $ ./configure \
      --prefix=/opt/php \
      --with-apxs2=/usr/apache2/bin/apxs \
      --enable-mbstring \
      --with-gd \
      --with-zlib \
      --with-oci8 \
      --enable-sigchild \
      --enable-zend-multibyte
      ...
      $ make
      ...

    5. rootユーザーの戻り、「make install」を実行して、makeが生成したバイナリのインストールを行う。
    6. $ exit
      # PATH=/opt/php/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH
      # cd /export/home/php/php-5.3.2
      # make install
      ...

    7. viで「httpd.conf」を開き、インストーラがLoadModuleディレクティブにphp5_moduleを追加してあるか確認をして、AddTypeディレクティブにPHPスクリプトファイルの拡張子を追加して、同拡張子をもつファイルを呼び出したときに、PHP5のApache2拡張モジュールが処理するよう設定する。
    8. # vi /etc/apache2/httpd.conf
      ...
      LoadModule php5_module libexec/libphp5.so
      ...
      AddType application/x-compress .Z
      AddType application/x-gzip .gz .tgz

      AddType application/x-compress .Z
      AddType application/x-gzip .gz .tgz
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps

    9. 前回と同じように「httpd.conf」の「DocumentRoot」の定義を調べ、PHPスクリプトを作成したディレクトリから、ドキュメントルート(DocumentRoot)にシンボリックリンクを張る。
    10. # cat /etc/apache2/httpd.conf|grep ^DocumentRoot
      DocumentRoot "/var/apache2/htdocs"
      ...
      # ln -s /export/home/oracle/php /var/apache2/htdocs/php

    11. Apache/2.0.63を起動または、再起動する。このあたりのコマンドは「第7回 Webサーバーの起動」を参照されたい。
    12. # /etc/init.d/apache stop
      ...
      # /etc/init.d/apache start

    13. URLにhttp:// server_addr :7777/php/phpinfo.phpを指定してPHPスクリプトの実行結果を確認する。

  2. OracleDBに接続する環境の構築
    1. Apacheの実行ユーザーがoracleのライブラリを使用できるように、/usr/apache2/bin/envvars に環境変数を追加する。 
    2. # vi /usr/apache2/bin/envvars
      ...
      #
      LD_LIBRARY_PATH="/usr/apache2/lib:$LD_LIBRARY_PATH"
      export LD_LIBRARY_PATH
      #

      #
      ORACLE_BASE=/opt/app/oracle; export ORACLE_BASE
      ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
      ORACLE_SID=orcl; export ORACLE_SID
      NLS_LANG=Japanese_Japan.JA16EUCTILDE; export NLS_LANG
      ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
      LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
      PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH
      LD_LIBRARY_PATH="/usr/apache2/lib:$LD_LIBRARY_PATH"
      export LD_LIBRARY_PATH
      #

    3. OracleDBに接続するPHPスクリプトを作成する。
    4. $ mkdir -p /export/home/oracle/php
      $ vi /export/home/oracle/php/db.php
      ...
      <html>
      <head>
      </head>
      <body>
      <?php
       $connection = oci_connect('scott', 'tiger');
       $sql = 'select table_name from user_tables';
       $statement = oci_parse($connection, $sql);
       oci_execute($statement);
       while($record = oci_fetch_array($statement)) {
        print $record['TABLE_NAME'] . "<br> \n";
       }
       oci_free_statement($statement);
       oci_close($connection);
      ?>
      </body>
      </html>
      ...

    5. URLにhttp:// server_addr :7777/php/db.phpを指定してPHPスクリプトの実行結果を確認する。
    6. 必要ないならスクラッチを消す。
    7. $ rm -r /export/home/php/php-5.3.2
      ...
      $ rm /export/home/php/php-5.3.2.tar
      ...

2010年5月18日火曜日

第19回 PHP4.3.9のインストール

Oracle HTTP Serverがインストール済みであれば、PHP Version 4.3.9も同時にインストールされているので、PHP実行環境はすでに構築されている。 その手順は「第13回 HTTP ServerでPL/SQLのWeb Applicationを動かす」の示すとおりであり、そこまでの構築が完了しているならば、あとは下記のとおりにPHPスクリプトを作成して、走らせるだけである。

  1. 「oracle」ユーザー直下にphpディレクトリを作成して、そこにPHPスクリプトを作成する。
  2. $ mkdir -p /export/home/oracle/php
    $ vi /export/home/oracle/php/phpinfo.php
    ...
    <?php
    phpinfo();
    ?>
    ...

  3. HTTP Server(Apache)の「httpd.conf」から「DocumentRoot」の定義を調べ、PHPスクリプトを作成したディレクトリから、ドキュメントルート(DocumentRoot)にシンボリックリンクを張る。
  4. $ cat /opt/app/oracle/product/10.2.0/companion/Apache/Apache/conf/httpd.conf|grep ^DocumentRoot
    DocumentRoot "/opt/app/oracle/product/10.2.0/companion/Apache/Apache/htdocs"

    ...

    $ ln -s /export/home/oracle/php /opt/app/oracle/product/10.2.0/companion/Apache/Apache/htdocs/php

  5. Oracle HTTP Serverを起動する。この辺のコマンドは「第12回Oracle HTML DB、HTTP Serverのインストール」を参照されたい。
  6. $ /opt/app/oracle/product/10.2.0/companion/opmn/bin/opmnctl startall

  7. URLにhttp://server_addr:7777/php/phpinfo.phpを指定してPHPスクリプトの実行結果を確認する。
  8. Configure Commandの値が示すように、このバイナリがビルドした状況では現存しないパスを示している。特に Oracle接続には「oci8」の示す内容で、Oracleコールインターフェース (OCI)を使用したいがこれも実在しない場所を参照している。Oracle HTTP Serverに古いバージョンのPHPを組み合わせて使用する理由もないので、DB接続については次回行う。Oracle HTTP Server上でこのバージョンのPHPを使用する場合は、下記のとおりソースをダウンロードしてからビルドして使用する。

    $ wget http://museum.php.net/php4/php-4.3.9.tar.gz

2010年2月6日土曜日

第18回 RailsアプリをApacheにデプロイする

下記の手順により、Phusion Passenger(mod_rails for Apache)をインストールして、前回scaffoldによって作成したスケルトンをApache2にデプロイする。

  1. 「ruby」ユーザーで、Phusion Passenger(mod_rails for Apache)をインストールする。
  2. $ gem install passenger
    Building native extensions. This could take a while...
    Building native extensions. This could take a while...
    Successfully installed fastthread-1.0.7
    Successfully installed passenger-2.2.9
    2 gems installed
    Installing ri documentation for fastthread-1.0.7...
    Installing ri documentation for passenger-2.2.9...
    Updating class cache with 2626 classes...
    Installing RDoc documentation for fastthread-1.0.7...
    Installing RDoc documentation for passenger-2.2.9...

  3. passenger-install-apache2-moduleを実行し、Apacheモジュールをビルドする。
    • 途中で「Enter」を2度打ち次に進む。
    • 次のhttpd.confの編集で使うため、網伏部分のテキストをコピーしておく。
    $ APXS2=/usr/apache2/bin/apxs;export APXS2
    $ passenger-install-apache2-module
    Welcome to the Phusion Passenger Apache 2 module installer, v2.2.9.

    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.


    --------------------------------------------

    Checking for required software...

    * GNU C++ compiler... found at /usr/sfw/bin/g++
    * Ruby development headers... found
    * OpenSSL support for Ruby... found
    * RubyGems... found
    * Rake... found at /opt/ruby/bin/rake
    * rack... found
    * Apache 2... found at /usr/apache2/bin/httpd
    * Apache 2 development headers... found at /usr/apache2/bin/apxs
    * Apache Portable Runtime (APR) development headers... found at /usr/apache2/bin/apr-config
    * Apache Portable Runtime Utility (APU) development headers... found at /usr/apache2/bin/apu-config

    --------------------------------------------
    Compiling and installing Apache 2 module...
    ...

    --------------------------------------------
    The Apache 2 module was successfully installed.

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

    LoadModule passenger_module /opt/ruby/lib/ruby/gems/1.9.1/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
    PassengerRoot /opt/ruby/lib/ruby/gems/1.9.1/gems/passenger-2.2.9
    PassengerRuby /opt/ruby/bin/ruby

    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:

    /opt/ruby/lib/ruby/gems/1.9.1/gems/passenger-2.2.9/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.
    ...

  4. 「root」ユーザーで、Apache の設定ファイル「httpd.conf」の編集を行う。
    • 初期状態では「 httpd.conf」は無い、「httpd.conf-example」を「httpd.conf」にコピーすることにより作成する。
    • 網伏部分のテキストを末尾に追加する。
    • WEBrickサーバーでは「RailsEnv」が「development」と定義されている。同じように定義をApache でもしておかないと「Welcome aboard」画面で「About your application’s environment」の表示ができないので、ここで定義する。
    • 「RailsBaseURI」によってそれ以下のディレクトがRailsアプリケーションであることをPassengerに指示する。
    • ここでは触れないが、Sinatraアプリケーションの場合は「RackBaseURI」によって指示する。
    • 複数のRails・Sinatraベースのアプリケーションを指示する場合は次のシンボリックリンクと組み合わせる。
    # cd /etc/apache2
    # cp -p httpd.conf-example httpd.conf
    # vi httpd.conf
    ...

    <IfModule prefork.c>
       ListenBacklog 8192
       ServerLimit 2048
       MaxClients 2048
    </IfModule>
    LoadModule passenger_module /opt/ruby/lib/ruby/gems/1.9.1/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
    PassengerRoot /opt/ruby/lib/ruby/gems/1.9.1/gems/passenger-2.2.9
    PassengerRuby /opt/ruby/bin/ruby
    RailsEnv development
    <VirtualHost *:80>
      ServerName localhost
      RailsBaseURI /scott
    </VirtualHost>

  5. Apache のドキュメントルート(DocumentRoot)にシンボリックリンクを張る。
    • ここではApacheのデフォルトのドキュメントルート「/var/apache2/htdocs」を変更せず、そこにシンボリックリンクを張ることにする。なお、変更する場合は「httpd.conf」の「<VirtualHost *:80>」内に「DocumentRoot」を定義する。
    # ln -s /export/home/ruby/scott/public /var/apache2/htdocs/scott

  6. 「envvars」を編集する。
    • Apache2の起動時は「envvars」を読み込み環境変数を設定する、このため必要な設定を本ファイルに行う。
    • 設定内容は「ruby」ユーザーの「.profile」とほぼ同じであるので、それを編集して使う。
    • 網伏部分のテキストのように編集する。

    # vi /usr/apache2/bin/envvars

    # This file is generated from envvars-std.in
    #

    ORACLE_BASE=/opt/app/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
    ORACLE_SID=orcl; export ORACLE_SID
    NLS_LANG=Japanese_Japan.UTF8;export NLS_LANG
    PATH=/opt/ruby/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    LD_LIBRARY_PATH="/usr/apache2/lib:$LD_LIBRARY_PATH"

  7. Apache2を起動する。
    • Apachサービスが立ち上がっているか確認して、「Apach」を停止する。
    • Apach2サービスを立ち上げ、確認する。
    • 注:svcadm enable/disableはフリップ・フロップである、すなわちenableに倒れていれば、次回のブートでもサービスを立ち上がり、disableに倒れていれば、次回のブートではサービスは立ち上がらない。

    # ps -ef|grep httpd
    nobody 789 776 0 12:17:10 ? 0:00 /usr/apache/bin/httpd
    nobody 790 776 0 12:17:10 ? 0:00 /usr/apache/bin/httpd
    nobody 791 776 0 12:17:10 ? 0:00 /usr/apache/bin/httpd
    root 776 1 0 12:17:09 ? 0:00 /usr/apache/bin/httpd
    nobody 793 776 0 12:17:10 ? 0:00 /usr/apache/bin/httpd
    nobody 797 776 0 12:17:10 ? 0:00 /usr/apache/bin/httpd

    # /usr/apache/bin/apachectl stop
    /usr/apache/bin/apachectl stop: httpd stopped
    # svcadm enable apache2
    # ps -ef|grep httpd0
    webservd 12057 12041 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start
    webservd 12056 12041 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start
    webservd 12055 12041 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start
    webservd 12054 12041 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start
    root 12041 1 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start
    webservd 12058 12041 0 14:20:44 ? 0:00 /usr/apache2/bin/httpd -k start

  8. URLにhttp://server_addr/scott/を指定してRailsの設定を確認する。
  9. URLにhttp://server_addr/scott/empsを指定してRailsアプリケーションを確認する。

2010年1月25日月曜日

第17回 scaffoldでスケルトンを作成する

前回に引き続きRuby On Railsから、scaffoldによってスケルトンを作成してOracleDBに接続する。

  1. scaffoldによるスケルトンの作成は次の縛りがあるため、「scott」スキーマの「emp」テーブル名を利用して対象となるテーブルを作成する。
    • テーブル名は複数形である、つまり末尾に「s」が付いたものを単数形のクラスから使用する。
    • カラムの一つが「id」というカラム名があること。
    • 「id」はプライマリキーであること。
    • 「id」はテーブル名 + 「_seq」という名前のシーケンスでインクリメントされること。

    $ sqlplus scott/tiger@orcl
    SQL> create table emps as select * from emp;
    SQL> alter table emps rename column empno to id;
    SQL> alter table emps add constraint emps_pk primary key (id);
    SQL> select max(id)+1 from emps;

    MAX(ID)+1
    ----------
    7935
    SQL> create sequence emps_seq start with 7935;
    SQL> commit;
    SQL> quit

  2. Railプロジェクトをスキーマと同じく「scott」で作成した。後は次の手順のとおり。

    • Oracleアダプタを経由して「scott」スキーマに接続するように「database.yml」を編集する。
    • scaffold ではテーブル名末尾の「s」を取り、先頭文字を大文字にしたクラス名を指定してコードをジェネレートする。
    • WEBrickサーバーを立ち上げる。

    $ rails scott
    create
    create app/controllers
    ...
    create log/test.log
    $ cd scott

    vi config/database.yml

    development:
    adapter: oracle_enhanced
    database: localhost:1521/orcl
    username: scott
    password: tiger

    $ ruby script/generate scaffold Emp ename:string job:string mgr:integer hiredate:datetime sal:decimal comm:decimal deptno:integer
    create
    create app/controllers
    ...
    $ ruby script/server

  3. URLにhttp://server_addr:3000/empsを指定して作成したクラスを呼び出す。

第16回 RailsをOracleに接続する

Ruby On RailsからOracleDBに接続する環境を構築する。OracleDBに接続するためにはoracleのライブラリが参照できる、設定と権限が無くてはならない、このためユーザーを作成してそれを「ruby」とした。

  1. インストール手順
    1. rootでログインして「ruby」グループ、ユーザーを作成する。oracleのライブラリを参照できるようにセカンダリユーザーグループに「oinstall」を指定する。プロファイルはoracleのものを流用して、後で作成する「/opt/ruby/bin」にパスを通しておく。
    2. # groupadd ruby
      # useradd -g ruby -G oinstall -d /export/home/ruby -m ruby
      64 ブロック
      # passwd ruby
      新しいパスワード:
      新しいパスワードを再入力してください:
      passwd: ruby のパスワードが変更されました
      # mkdir -p /opt/ruby
      # chown ruby /opt/ruby
      # cp /export/home/oracle/.profile /export/home/ruby/.profile
      # chown ruby /export/home/ruby/.profile
      # vi /export/home/ruby/.profile

      PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH

      PATH=/opt/ruby/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb:$ORACLE_HOME/bin:.; export PATH

    3. 前回との差異を網伏せにした。すなわちruby-oci8(Oracle Database用の ruby インターフェース)、activerecord-oracle_enhanced-adapter(Oracleアダプタ)、unicode_utils(Unicode ユーティリティ)をインストールする。
    4. $ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz
      $ gzip -d ruby-1.9.1-p378.tar.gz
      $ tar xvf ruby-1.9.1-p378.tar
      $ cd ruby-1.9.1-p378
      $ ./configure -prefix=/opt/ruby --enable-pthread
      $ make
      $ make install
      $ wget http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip
      $ unzip rubygems-1.3.5.zip
      $ cd rubygems-1.3.5
      $ ruby setup.rb
      $ gem install ruby-oci8
      $ gem install activerecord-oracle_enhanced-adapter
      $ gem install unicode_utils
      $ gem install rails

    5. バージョンを明示してインストールしてもの。gemが判断してインストールしたものは下記のとおりになる。
    6. $ ruby -v
      ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-solaris2.10]
      $ gem -v
      1.3.5
      $ gem list

      *** LOCAL GEMS ***

      actionmailer (2.3.5)
      actionpack (2.3.5)
      activerecord (2.3.5)
      activerecord-oracle_enhanced-adapter (1.2.3)
      activeresource (2.3.5)
      activesupport (2.3.5)
      rack (1.0.1)
      rails (2.3.5)
      rake (0.8.7)
      ruby-oci8 (2.0.3)
      unicode_utils (1.0.0)

  2. シェルスクリプト
  3. インストール手順を例によってシェルスクリプトにまとめた、これを/tmp以下に作成して、実行権限を与えて、実行する。注意点は、wgetによるダウンロードは通信状況に左右されるので、アボートした場合はそこから再実行する。

    1. rootユーザーで実行するシェルスクリプトは下記のとおり。
    2. #!/bin/sh

      groupadd ruby
      useradd -g ruby -G oinstall -d /export/home/ruby -m ruby
      passwd ruby
      mkdir -p /opt/ruby
      chown ruby /opt/ruby
      sed s'/^PATH=/PATH=\/opt\/ruby\/bin:/' /export/home/oracle/.profile > /export/home/ruby/.profile
      chown ruby /export/home/ruby/.profile
      exit

    3. rubyユーザーで実行するシェルスクリプトは下記のとおり。
    4. #!/bin/sh

      # install Ruby:
      wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz
      gzip -d ruby-1.9.1-p378.tar.gz
      tar xvf ruby-1.9.1-p378.tar
      cd ruby-1.9.1-p378
      ./configure -prefix=/opt/ruby --enable-pthread
      make
      make install

      # install RubyGems:
      wget http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip
      unzip rubygems-1.3.5.zip
      cd rubygems-1.3.5
      ruby setup.rb

      # install Oracle Call Interface
      gem install ruby-oci8

      # install activerecord-oracle_enhanced-adapter
      gem install activerecord-oracle_enhanced-adapter

      # install Unicode string manipulation functions for Ruby 1.9.
      gem install unicode_utils

      # install Ruby on Rails:
      gem install rails

      exit

2010年1月13日水曜日

第15回 Railsのインストール

Ruby On Rails環境を構築する。まだまだ発展途上にあるフレームワークなので、Rubyは「www.sunfreeware.com」のパッケージを使用しないで、 「ruby-lang.org」から最新版をダウンロードして、ソースからビルドしてインストールする。gem(Rubyパッケージのプライマリインストーラ)は「rubyforge.orgから最新版をダウンロードしてインストールする。

  1. インストール手順
  2. 以下の手順に従い、rootユーザーからインストールを実行する。

    1. コンパイル(gcc)、wgetのための「/usr/sfw/bin」、リンカ(ld)、makeのための「/usr/ccs/bin」パスが設定してあるのか調べて、ない場合は設定する。
    2. # env|grep PATH
      PATH=/usr/sbin:/usr/bin
      # PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin; export PATH

    3. rubyの最新版をダウンロードして、インストールする。「ruby -v」でバージョンを表示して確認する。なお、デフォルトでは「/usr/local」ディレクトリに配置されるので、Solaris流儀に従い「/opt/local」以下に配置するよう指示した。
    4. # wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz
        …  
      # gzip -d ruby-1.9.1-p378.tar.gz
        …  
      # tar xvf ruby-1.9.1-p378.tar
        …  
      # cd ruby-1.9.1-p378
        …  
      # ./configure -prefix=/opt/local
        …  
      # make
        …  
      # make install
        …  
      # /opt/local/bin/ruby -v
      ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-solaris2.10]

    5. rubygemsの最新版をダウンロードして、インストールする。「ruby -v」でバージョンを表示して確認する。
    6. # wget http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip
        …  
      # unzip rubygems-1.3.5.zip
        …  
      # cd rubygems-1.3.5
        …  
      # /opt/local/bin/ruby setup.rb
        …  
      # /opt/local/bin/gem -v
      1.3.5

    7. railsをインストールする。「rails -v」でバージョンを表示して確認する
    8. # /opt/local/bin/gem install rails
        …  
      # /opt/local/bin/rails -v
      Rails 2.3.5

  3. シェルスクリプト
  4. インストール手順を例によってシェルスクリプトにまとめた、これを/tmp以下に作成して、実行権限を与えて、実行する。注意点は、wgetによるダウンロードは通信状況に左右されるので、アボートした場合はそこから再実行する。

    #!/bin/sh

    PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/sfw/bin:/opt/local/bin; export PATH

    # install Ruby:
    wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz
    gzip -d ruby-1.9.1-p378.tar.gz
    tar xvf ruby-1.9.1-p378.tar
    cd ruby-1.9.1-p378
    ./configure -prefix=/opt/local
    make
    make install
    ruby -v

    # install RubyGems:
    wget http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip
    unzip rubygems-1.3.5.zip
    cd rubygems-1.3.5
    ruby setup.rb
    gem -v

    # install Ruby on Rails:
    gem install rails
    rails -v

    exit