[ruby-list:43592] Re: CGIが実行できない(open failed)

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-06-06 08:13:46 UTC
List: ruby-list #43592
なかだです。

At Wed, 6 Jun 2007 14:37:10 +0900,
Maehara Masahide (前原正英) wrote in [ruby-list:43590]:
> > 動くなら、以下のコマンドを実行したときの結果はどうでしょうか。
> > 
> >   ldd /usr/local/lib/ruby/1.8/sparc-solaris2.8/nkf.so
> 
> $ ldd /usr/local/lib/ruby/1.8/sparc-solaris2.8/nkf.so
>         libdl.so.1 =>    /usr/lib/libdl.so.1
>         libcrypt_i.so.1 =>       /usr/lib/libcrypt_i.so.1
>         libm.so.1 =>     /usr/lib/libm.so.1
>         libc.so.1 =>     /usr/lib/libc.so.1
>         libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
>         libgen.so.1 =>   /usr/lib/libgen.so.1
>         /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1

/usr/local/libが共有ライブラリの検索パスに設定されていないので
しょうが、libgcc_s.so.1が/usr/local/libにあるということは、gcc
も自分でコンパイルしたものですか?

たぶん以下のどれかで解決すると思います。

* configureに --enable-shared オプションをつける

* configureに LDFLAGS=-R/usr/local/lib を指定する

* システムのデフォルトで /usr/local/lib も探すように指定する
  近頃のSolarisだとcrleコマンドで指定するようです。
    crle -u -l /usr/local/lib

* Apacheの設定でLD_LIBRARY_PATHをセットする

> >   printenv LD_LIBRARY_PATH
> 
> printenv がなかったので,以下のように実行してみました。
> $ env | grep LD_LIBRARY_PATH
> LD_LIBRARY_PATH=/usr/local/lib
> 
> ***
> 
> Apache で,cgi が実行できなかったので,rails 環境で試してみようと,
> $ ./script/server
> したあと,public フォルダに,cgiファイルを置いて実験してみたのですが,
> require "nkf"
> を有効にすると,以下のようなエラーが表示されました。

WebrickもApache同様環境変数をクリアします。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread