Oracle 8i(8.1.5)+PHP+Apache のインストールについて 1.準備するもの Linux (Oracle 8i でサポートするもの) Javaの実行環境 -- JRE 1.1.6 v5 http://www.blackdown.org から入手可能 Oracle 8i for Linx PHP3 ソースファイル (国際化バージョンが望ましい) Apache ソースファイル 2.インストールの手順 1) Linux のインストール 2) Oracle 8i のインストール 3) PHP3,Apache のインストール 3.Linux のインストール Linux は Oracle 8i 用にインストールする事が望ましい。 また対応するディストリビューションは Oracle 8i のインストール マニュアル等を参考にする。 Linuxのインストールで注意する点は以下の通り Oracle 8i用にインストールをする場合 swap 領域は実メモリーの 3倍程度を確保する。(インストール時の初期DB作成に必要) 実際のDB運用を考えた場合、DB専用のパテーションを考慮する。 4.Oracle 8i のインストール Oracle 8i のインストールは以下のステップで行う (詳細はOracle 8i のインストールマニュアル等を参考にする。) 1) Oracleユーザーの作成 2) Java実行環境のインストール 3) Oracle 8iのインストール 4) 初期DBの作成 5) DB環境の設定 1) Oracleユーザーの作成 Oracle のインストール/操作には専用ユーザーが必要となる ex.) ユーザー oracle グループ dba でユーザーを作成 $ su Password: # groupadd dba # useradd -d /home/testuser testuser 2) Java実行環境のインストール Oracleのインストーラー/設定ツールにはJavaが必要となる。 ( http://www.blackdown.orgから入手可能 ) ex.) Java実行環境を /usr/local にインストールする $ su Password: # cd /usr/local # tar xIfv /tmp/jre_1.1.6-v5-glibc-x86.tar.bz2 # ln -s jre116_v5 jre 3) Oracle 8iのインストール 3-1) インストール前の準備 Oracle 8iをインストールする前にインストール/動作環境の設定を を行い、Linux に oracle ユーザーで login しなおす。 Oracle 8iのインストールディレクトリを作成する。 ex.) $ su Password: # mkdir /usr/local/oracle # chmod oracle.dba /usr/local/oracle oracle ユーザーのホームディレクトリにある .bash_profile に以下の 項目を追加する。 ex.) umask 022 export ORACLE_OWNER=oracle export ORACLE_BASE=/usr/local/oracle export ORACLE_HOME=$ORACLE_BASE/oracle export ORACLE_SID=TEST export ORACLE_TERM=vt100 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG=japanese_japan.ja16euc export TNS_ADMIN=$ORACLE_HOME/network/admin *注 export LD_LIBRARY_PATH についてはLinuxの環境により正常に設定 されない場合があるので、その時は /etc/ld.so.conf に追加する。 /usr/local/oracle/oracle/lib を /etc/ld.so.confに追加後, /sbin/ldconfig コマンドを実行する。 インストール後、/sbin/ldconfig コマンドでoracle関係の warning が発生 するが、特に問題はない。 3-2) インストール orcale ユーザーで 再login をしたら Orcale 8i のインストーラーを起動しインストール する。 $ cd /mnt/cdrom/oracle $ ./runInstaller *注 runInstallerコマンドが Permission denied 等で起動できない場合は 一度、CD-ROMの中身を ハードディスクにコピーするか、またはJavaの インストーラーを直接起動する。 Javaのインストーラーは install/linux/runIns.sh *注 インストラー起動時に "Can't open display"等のエラーとなり起動しない 場合は 環境変数 DISPLAY が適切でない場合があるので設定する。 ex.) export DISPLAY=localhost:0.0 xhost +localhost *注 環境変数 LANG が日本語環境の場合 Linux のディストリビューションによっては、 初期DBの作成処理で文字落ちが発生するのでインストール時の初期DB作成を行 わないか、LANG変数を変更しインストールする。 ex.) export LANG=C (この場合、メッセージは全て英語となる) *注 初期DBの作成は P-III 700MHz,RAM 128M で1時間強。 3-3) インストール後の確認 DBへのアクセス等を確認する。 *注 初期設定として ユーザー用のロールバック領域は使用不可(OFFLINE)状態なので 設定ファイルを変更する。 設定ファイル $ORACLE_HOME/dbs/initLxxxx.ora <-- xxxxはSID値 : # If using private rollback segments, place lines of the following # form in each of your instance-specific init.ora files: # rollback_segments = (r01, r02, r03, r04) : ↓ : # If using private rollback segments, place lines of the following! # form in each of your instance-specific init.ora files:! rollback_segments = (r01, r02, r03, r04)! : :! 5.PHP3,Apacheのインストール PHPを組み込んだApacheのインストール。 作業は基本的に一般ユーザーで行い、必要に応じて root で作業する。 5-1) 最初にApacheは起動している場合は終らせる。 Apache関係のパッケージを削除する。 ソースの展開 $ tar zxfv apache_1.3.12.tar.gz $ tar zxfv php-3.0.15-i18n-ja.tar.gz 5-2) Apacheの仮configure $ cd apache_1.3.12. $ ./configure 5-3) PHPのインストール $ cd ../php-3.0.15-i18n-ja $ ./configure --with-apache=../apache_1.3.12 \ <- Apacheのソースディレクトリー --with-oracle=/usr/local/oracle/oracle \ <- Oracleをインストールしたディレクトリー --enable-i18n \ <- 国際化オプション --enable-mbregex <- マルチバイト $ make $ make install <- 一般ユーザーでインストール(Apacheのソースディレクトリーに インストールされる ** configure のオプションは必要に応じて追加する。 5-4) Apache のインストール $ cd ../apache_1.3.12 $ ./configure --enable-shared=max \ --enable-module=all \ --activate-module=src/modules/php3/libphp3.a <-PHPの組み込み $ make $ su Password: # make install ** configure のオプションは必要に応じて追加する。 デフォルトのインストール先は /usr/local/apache 5-5) Apacheの設定ファイルの変更と確認 デフォルトでインストールを行うと /usr/local/apache/conf に httpd.conf ファイルがあるので 変更と確認を行う。 ClearModuleListで mod_php3.c が有効となっているか AddModule mod_php3.c AddType でPHP が有効となっているか AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3-source .phps **コメント状態であればコメント('#')を外す その他 'Port' , 'DocumentRoot' 等必要に応じて変更する。 5-6) Apacheの動作確認 Apacheの起動 # /usr/local/apache/bin/apachectl start ps コマンドで httpd が動作していれば起動している。 サンプルによる PHPの動作確認。 以下の内容でhtmlファイルを作成し動作を確認する。 "これはてすとです" が表示されればPHPはOK! サンプルによるOracle との接続テスト。 以下の内容でhtmlファイルを作成し動作を確認する。 確認前に Oracle のプロセスと リスナーのプロセスが動作 しているかを確認しておく。 SYSDATE=00-06-15 と表示されればOracle との接続はOK!(日付は今日の日付) *注 Linux起動時に Apacheを自動起動させる場合Oracle関係の環境変数を有効に する必要がある。 5-7) DBサーバーを別サーバーにする場合 DBサーバーとWebサーバーを別マシンで稼働させる場合のやりかた。 DBサーバーは通常の同じくインストール/セットアップを行う。 Webサーバーには Oracle Client をインストールする。 Webサーバーで上記と同じようにPHP/Apacheのインストールを行う。 Webサーバー側ではDBサーバーに接続する為のクライアント設定が必要になる。 設定ファイルは $ORACLE_HOME/network/admin/tnsnames.ora である。 (設定の詳細は関連書籍/マニュアルを参考のこと) ex.) $ORACLE_HOME/network/admin/tnsnames.ora # TNSNAMES.ORA Configuration File:/usr/local/oracle/oracle/network/admin/tnsnames.ora # Generated by Oracle Net8 Assistant DBHOST = <- ネットサービス名 (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp)(HOST=dbhost)(PORT=1521)) ) (CONNECT_DATA= (SID = TEST) ) ) PHPでのOracle DB への接続書式 Ora_Logon("ユーザー名@ネットサービス名", "パスワード"); ↓ Ora_Logon("scott@DBHOST", "tiger");