2006年 3月
2005年 < 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 > 2007年
もくじ
3月22日・・・・・Oracleでドン
4月5日
コラム書くの1年ぶりだぜ(前回と同じセリフ)php4.3.xとoracleを組み合わせる必要があったのでメモ。php5だったら、ワンセットになったのがあるのになぁ。OSはFedora Core 3(4はphp5になっちゃうから)
oracle10gをインストールしてみた
まずは本体のダウンロード。zip形式なので、解凍したものをCD-Rに焼き焼き(どうも、USのサイトにはrpmもあるみたい)
同時にインスタントクライアントも使うので、同時にダウンロード。rpmはUSのサイトにしかないので注意。oracle-instantclient-basic-10.2.0.1-1.i386.rpm、 oracle-instantclient-devel-10.2.0.1-1.i386.rpm、 oracle-instantclient-sqlplus-10.2.0.1-1.i386.rpm。あとからphpのソースファイルが必要になるので、これも併せてダウンロード。php-4.3.11-2.8.src.rpm。
oracleのインストールにはGUIが必須なので、珍しくXを導入。
今回のOSインストールでは入らなかった必要パッケージをyumで追加導入。
gcc
compat-db
compat-gcc
compat-gcc-c++
compat-libstdc++
compat-libstdc++-devel
openmotif21
libaio
グループとユーザー作成
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
そのままではX Windowの実行権がないので、rootのauthorityファイルをコピー
cp /root/.Xauthority /home/oracle
chown oracle:dba /home/oracle/.Xauthority
.bash_profileにXAUTHORITYを設定
export XAUTHORITY=/home/oracle/.Xauthority
カーネル・パラメータを変更
/etc/sysctl.confに追記
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range=1024 65000
net.core.wmem_max=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.rmem_default=262144
net.core.optmem_max=262144
んで、コンソールからrunInstallerを実行。ウィザードに従ってOracleのインストールを完了させる。
続いてインスタントクライアントのインストール
rpm -ivh oracle-instantclient-basic-10.2.0.1-1.i386.rpm oracle-instantclient-devel-10.2.0.1-1.i386.rpm oracle-instantclient-sqlplus-10.2.0.1-1.i386.rpm
これを行ってから、phpのソースをリビルド。(rpm-buildがインストールされていなければ、これも入れるべし)
rpm -ivh php-4.3.11-2.8.src.rpm
specファイルを書き換え(%define with_oci8 1)
rpmbuild -ba php.spec
多分、すげーパッケージがないと怒られるので、この場合仕方なくインストールすべし。
今回足りなかったのは
bzip2-devel curl-devel db4-devel expat-devel gmp-devel aspell-devel httpd-devel libjpeg-devel libpng-devel pam-devel libstdc++-devel openssl-devel zlib-devel pcre-devel libtool krb5-devel libc-client-devel cyrus-sasl-devel openldap-devel mysql-devel postgresql-devel unixODBC-devel net-snmp-devel elfutils-devel libxslt-devel libxml2-devel ncurses-devel freetype-devel flex php-devel
でまあ、リビルドしてみるも
error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
と、つれないメッセージ。config.logを覗いてみると、cc1plusが見つけられてないみたい。
pathに
/usr/lib/gcc-lib/i386-redhat-linux/3.3.4
を追加して、rpmbuild実行したんだけど、なぜかoci8.soが作成されない。仕方なくphp本家から、同バージョンのphp-4.3.11.tar.gzをダウンロード。configureで--with-oci8-instant-client=shared,/usr/lib/oracle/10.2.0.1/client/libを指定し、make。出来上がったoci8.soを/usr/lib/php4にコピーしました。
php.ini中に「extension=oci8.so」を追加。
すると、すんなり成功。うお、長い道のりだったぜ!
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.1/client/lib/
export ORACLE_HOME=/opt/app/oracle
export NLS_LANG=JAPANESE_JAPAN.JA16EUC
export ORACLE_SID=oraoraora
環境変数にいろいろ設定して完了。
当ページは「千歳忍」の独り言です。
極力真実に基づいて記述するようにしていますが、当方の思い違いや表記の方法によって一般的な解釈と異なる場合が有ります。意見や訂正の要請は大歓迎です。また、書いてほしいネタも募集しています。その場合はこちらまでどうぞ。