PHP 4.4.8でOCI8はダメだったけど、4.4.9では大丈夫になった。もうsupportもないだろうと思ってたPHP4系だけど、ラッキーって感じ。oracle 10g clientを使用し、PHP 4.4.9で接続する方法をまとめておく。使用OSは、CentOS 5.2 x86_64。
■oracle 10g client install
・必要なlibraryをインスコ
yum install libXp
・ユーザを作成
groupadd -g 103 dba
adduser -g dba -u 103 oracle
(apacheからaccessできるように、nobodyをdbaへ追加)
・oracle installerをRHELだとだます。
cd /etc
cp redhat-release redhat-release.centos
echo ‘Red Hat Enterprise Linux AS release 3 (Taroon)’ > redhat-release
・環境変数を設定
[.bash_profile]
export DISPLAY=:0.0
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_NLS33=$ORACLE_HOME/nls/data
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.JA16EUC
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib
export LANG=ja_JP.eucJP
export TERM=vt100
umask 022
・oracle 10g clientを解凍し、installerを起動。x-windowが必要ですヨ。
gzip -d 10201_client_linux_x86_64.cpio.gz
cpio -imd < 10201_client_linux_x86_64.cpio
cd client
./runInstaller
(後は画面を観ながらインスコする)
■PHP 4.4.9
yum install flex
./configure --with-apxs=/usr/local/apache/bin/apxs --enable-versioning --enable-mbregex --enable-sigchild --enable-mbstring --enable-mbstr-enc-trans --enable-zend-multibyte --with-oci8 --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql
make
make install
make install時、SELinuxによりpermission deniedがでる場合があるので、以下を実行。
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /home/oracle/product/10.2.0/db_1/lib/libnnz10.so
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /home/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
■テスト
$oci = OCILogOn("user", "pass", "tnsname");
$rc = OCIParse($oci, "SELECT * FROM TABLE ");
OCIExecute($rc);
while (OCIFetchINTO($rc, $obj)) {
print_r($obj);
}
OCILogOff($oci);
?>
鎌倉観光 深谷霊園 インターンシップ
9月 4 2008
oracle 10g client, PHP 4.4.9
PHP 4.4.8でOCI8はダメだったけど、4.4.9では大丈夫になった。もうsupportもないだろうと思ってたPHP4系だけど、ラッキーって感じ。oracle 10g clientを使用し、PHP 4.4.9で接続する方法をまとめておく。使用OSは、CentOS 5.2 x86_64。
■oracle 10g client install
・必要なlibraryをインスコ
yum install libXp
・ユーザを作成
groupadd -g 103 dba
adduser -g dba -u 103 oracle
(apacheからaccessできるように、nobodyをdbaへ追加)
・oracle installerをRHELだとだます。
cd /etc
cp redhat-release redhat-release.centos
echo ‘Red Hat Enterprise Linux AS release 3 (Taroon)’ > redhat-release
・環境変数を設定
[.bash_profile]
export DISPLAY=:0.0
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_NLS33=$ORACLE_HOME/nls/data
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.JA16EUC
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib
export LANG=ja_JP.eucJP
export TERM=vt100
umask 022
・oracle 10g clientを解凍し、installerを起動。x-windowが必要ですヨ。
gzip -d 10201_client_linux_x86_64.cpio.gz
cpio -imd < 10201_client_linux_x86_64.cpio cd client ./runInstaller (後は画面を観ながらインスコする) ■PHP 4.4.9 yum install flex ./configure --with-apxs=/usr/local/apache/bin/apxs --enable-versioning --enable-mbregex --enable-sigchild --enable-mbstring --enable-mbstr-enc-trans --enable-zend-multibyte --with-oci8 --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql make make install make install時、SELinuxによりpermission deniedがでる場合があるので、以下を実行。 chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /home/oracle/product/10.2.0/db_1/lib/libnnz10.so chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /home/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1 ■テスト $oci = OCILogOn("user", "pass", "tnsname"); $rc = OCIParse($oci, "SELECT * FROM TABLE "); OCIExecute($rc); while (OCIFetchINTO($rc, $obj)) { print_r($obj); } OCILogOff($oci); ?>
鎌倉観光 深谷霊園 インターンシップ
By admin • computer(server) •