[PHP-users 26112] Re: CLI版PHP OCIライブラリロードエラー

nagaura nagaura @ sys-com.co.jp
2005年 7月 11日 (月) 19:44:11 JST


お世話になります。nagauraです。

後藤様
ご回答ありがとうございます。

B Shellを使用しております。
早速、教えていただいた手順でexportの方法を変更しましたが
同じ症状となりました。
ちなみにroot権限で実行しています。

後、気になったことですが、
コマンドラインでもphp.iniを参照していると思うのですが
extensionに関してはロードしてくれないのでしょうか。

シェル内で
php -i を実行し、出力結果を確認したのですが、OCI8の表記がなくなっています。
(ブラウザ上でphpinfo表示させた場合は、OCIの表記は出ます。)

extensionがロードされていないのかなと思い
-z オプションを使用し、以下の様に絶対パスで記述しています。

/opt/hpws/apache/php/bin/php -f /opt/hpws/apache/htdocs/updatehtml.php -z /opt/hpws/apache/php/lib/php/oci8.sl

このような記述は正しいのでしょうか。

> > コマンドラインより、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 メーリングリストの案内