[PHP-users 26111] Re: CLI版PHP OCIライブラリロードエラー
Kazumasa Gotoh
kgotoh @ cic-kk.co.jp
2005年 7月 11日 (月) 18:50:55 JST
From: nagaura <nagaura @ sys-com.co.jp>
Date: Mon, 11 Jul 2005 17:21:52 +0900
> コマンドラインより、PHPを使用し定期的にoracleに接続し、
> データを取得し、HTMLに変換する機能を実装しようとしておりまして
> まず、DSO版でブラウザ上で表示確認しながら実装していました。
> スクリプトが完成し、いざコマンドライン上で実行しようとすると
> OCI関数が見つからないというエラーが表示されてうまく実行できません。
> 原因はライブラリのパスの設定のように思うのですが、oci8.sl でどのように
> libclntsh.sl.8.0 を参照しようとしているのかわからないため確認できません。
> どなたかご教授いただけないでしょうか。宜しくお願いします。
LD_LIBRARY_PATH に $ORACLE_HOME/lib32 が含まれていないのでしょう。
HP-UX は長いこと触っていないので忘れましたが、
> #!/usr/bin/sh
HP-UX の /usr/bin/sh って何 shell なのでしょう?
ごく普通の B Shell ではないのでしょうか?
> # for using PHP with oracle support, set the following
> export ORACLE_BASE=/home/oracle
> export ORACLE_HOME=/home/oracle/app/oracle
> export ORACLE_SID=hoge
> export NLS_LANG=JAPANASE_JAPAN.JA16EUC
> export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
> export SHLIB_PATH="$ORACLE_HOME/lib32:$APACHE_PREFIX/php/lib/php/extensions:$SHLIB_PATH"
> export LD_LIBRARY_PATH=$ORACLE_HOME/lib32
一見、LD_LIBRARY_PATH が通っているように見えますが、この書き方は
bash などでは使えますが、ただの B Shell では使えません。例えば、
ORACLE_BASE=/home/oracle
export ORACLE_BASE
と、書かなければなりません。Linux などの標準シェルは bash なので
Linux ばかり使っていると勘違いするのかも知れませんね。
逆に bash を例えば /usr/local/bin にインストールして、スクリプトの先頭に
#!/usr/local/bin/bash
と書くという方法もあるでしょう。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
(株) セントラル情報センター
後藤和政 kgotoh @ cic-kk.co.jp
PHP-users メーリングリストの案内