[PHP-users 26110] CLI版PHP OCIライブラリロードエラー
nagaura
nagaura @ sys-com.co.jp
2005年 7月 11日 (月) 17:21:52 JST
いつもお世話になっています。nagauraと申します。
コマンドラインより、PHPを使用し定期的にoracleに接続し、
データを取得し、HTMLに変換する機能を実装しようとしておりまして
まず、DSO版でブラウザ上で表示確認しながら実装していました。
スクリプトが完成し、いざコマンドライン上で実行しようとすると
OCI関数が見つからないというエラーが表示されてうまく実行できません。
原因はライブラリのパスの設定のように思うのですが、oci8.sl でどのように
libclntsh.sl.8.0 を参照しようとしているのかわからないため確認できません。
どなたかご教授いただけないでしょうか。宜しくお願いします。
以下にログの内容とコマンドラインでの実行シェルを載せておきます。
標準出力には以下の内容が表示されています。
-------------------------------------------------------------------------
Failed loading /opt/hpws/apache/php/lib/php/extensions/oci8.sl: Call to mmap()
failed - TEXT /opt/hpws/apache/php/lib/php/extensions/oci8.sl
Fatal error: Call to undefined function: ocilogon() in /opt/hpws/apache/htdocs/
dbaccess.php on line 57
-------------------------------------------------------------------------
ログには以下の内容が表示されています。
-------------------------------------------------------------------------
[11-Jul-2005 16:58:35] PHP Warning: Unknown(): Unable to load dynamic library '
/opt/hpws/apache/php/lib/php/extensions/oci8.sl' - Can't find path for shared li
brary: libclntsh.sl.8.0 in Unknown on line 0
[11-Jul-2005 16:58:35] PHP Fatal error: Call to undefined function: ocilogon()
in /opt/hpws/apache/htdocs/dbaccess.php on line 57
-------------------------------------------------------------------------
#libclntsh.sl.8.0 は libclntsh.sl.9.0 のシンボリックリンクとして
/home/oracle/app/oracle/lib32 に格納しています。
■開発環境
OS:HP-UX 11.11i
Apache 2.0.52
PHP 4.3.8
Oracle 9i
php -v
PHP 4.3.8 (cli) (built: Oct 9 2004 03:20:36)
#ApacheとPHPはHPにバンドルされていたものです。
コンパイルは行っていません。
■シェル
#!/usr/bin/sh
# modifying path for mod_perl
APACHE_PREFIX=/opt/hpws/apache
export PERL5LIB=$APACHE_PREFIX/lib/perl/lib/site_perl/5.8.0/PA-RISC1.1-thread-mu
lti:$APACHE_PREFIX/lib/perl/lib:$PERL5LIB
# environment variable to load libraries from apache-home
export SHLIB_PATH=$APACHE_PREFIX/lib:$APACHE_PREFIX/lib/LDAP:$SHLIB_PATH
# 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:$SHL
IB_PATH"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32
# for using PHP on HP-UX set PHPRC to location of php.ini
export PHPRC=$APACHE_PREFIX/conf
export LD_PRELOAD="$ORACLE_HOME/JRE/lib/PA_RISC/native_threads/libjava.sl"
/opt/hpws/apache/php/bin/php -f /opt/hpws/apache/htdocs/updatehtml.php -z /opt/h
pws/apache/php/lib/php/extensions/oci8.sl
以上です。
------
nagaura, nagaura @ sys-com.co.jp
PHP-users メーリングリストの案内