[centos-users 1003] 独自の共有ライブラリの指定方法

yama mailinglist0507 @ yahoo.co.jp
2009年 2月 17日 (火) 12:01:27 JST


やまと申します。

CentOSをインストールしてあるレンタルサーバでの
ことで教えて頂きたくお願い致します。

このレンタルサーバに独自のライブラリをインストールして
WebサーバのCGIで利用したいと思っております。
CGIのプログラムはCで組みたいと思っています。

通常ライブラリをインストールする場合は ldconfig を
rootで実行してライブラリのありかをローダに教えてあげる
必要があると思いますが、共用サーバなのでrootになることができません。
ユーザ権限しかありませんのでインストールする場所も制限され
/home/hoge/lib などにしかできないと思います。

Webサーバは別のユーザ(たぶん apache ユーザ)で
実行されています。
当然ですが、独自のライブラリの場所をWebサーバは分かりません。

Apache に mod_env がインストールされていれば .htaccess に
SetEnv などを記述することで指定も可能だと思うのですが、
残念ながらインストールされておりません。

こういった状況での使用の解決方法ということで、
1.CGIを静的リンクでコンパイルする。
2.LD_LIBRARY_PATHを指定するようなシェルスクリプトで
  Cで書いたCGIをラップする。
  たとえば bar.cgi を実行する場合 barwrap.sh のような
  シェルスクリプトを以下のような感じで作成して
  Webからはこの barwrap.sh にアクセスするようにする。
  --------------------------------
  #!/bin/sh
  
  export LD_LIBRARY_PATH=/home/hoge/lib
  /home/hoge/www/cgi-bin/bar.cgi
  --------------------------------

などを考えましたが、1だと実行ファイルが巨大化する。
2だとpostなどでデータを受け渡すのに少々面倒そう。
という事で、もう少しスマートな方法と言いますか一般的な方法を探しております。

一般的にはこうするとか
設定ファイルにこれを指定すればとか
言うものがありましたら
お教えいただきたく、お願い致します。


--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/



centos-users メーリングリストの案内