ここでは、CentOS5 で、PHP5.3 と OCI8 をソースコードからインストールするサンプルを掲載しています。OCI8 をインストールすることで PHP から Oracle データベースへ接続したりクエリの発行をおこなう oci8 関数を利用することができるようになります。
スポンサーリンク
PHP ソースコードのダウンロード
PHP のソースコードは『 PHPダウンロード 』 からダウンロードできます。
インストール
ダウンロードした PHP のソースコードを適当なディレクトリに展開し、以下の手順でインストールします。 なお、PHP のインストールディレクトリは、/usr/local/lib/php5 としています。
[usr@host src]$ pwd /usr/local/src [usr@host src]$ ls php-5.3.5.tar.gz [usr@host src]$ tar zxvf php-5.3.5.tar.gz [usr@host src]$ cd php-5.3.5 [usr@host php-5.3.5]$ ./configure --prefix=/usr/local/lib/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-oci8=shared,$ORACLE_HOME --with-pdo-oci=shared,$ORACLE_HOME --enable-pdo=shared --enable-sigchild --with-zlib --enable-mbstring --with-libmbfl [usr@host php-5.3.5]$ make ・・・ [usr@host php-5.3.5]$ su パスワード: [root@host php-5.3.5] make install
共有エクステンションと静的エクステンション
OCI8 のインストールには共有エクステンションと静的エクステンションのいずれかを選択します。共有エクステンションとは PHP 本体と OCI8 共有ライブラリを作成し、静的エクステンションは PHP 本体に OCi8 を取り込みますので、oci8.so ライブラリは作成されません。
上記の PHP のインストールは OCI8 を共有エクステンションとしてインストールしています。静的なエクステンションとしてインストールする場合には、下記のように –with-oci8、–with-pdo-oci および –enable-pdo オプションから shared をつけずに configure を実行します。
[usr@host php-5.3.5]$ ./configure --prefix=/usr/local/lib/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-oci8=$ORACLE_HOME --with-pdo-oci=$ORACLE_HOME --enable-pdo --enable-sigchild --with-zlib --enable-mbstring --with-libmbfl
httpd.conf の修正
Apache から PHP を実行するために、以下の内容を http.conf に追加します。
[root@host php-5.3.5] vi /usr/local/apache2/conf/httpd.conf AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml AddType application/x-httpd-php-source .phps
php.ini の修正
php.ini にタイムゾーンの設定を追加します。タイムゾーンの設定をしないと PHP5.3 ではエラーや警告が表示されてしまいます。また、OCI8 を共有エクステンションとしてインストール しているので、extension も追記する必要があります。
[root@host php-5.3.5] vi /usr/local/lib/php5/lib/php.ini # タイムゾーンを設定する date.timezone = Asia/Tokyo # oci8 エクステンションの設定 # oci8 を静的エクステンションとしてインストールした場合は、下記設定は不要 extension=oci8.so
PHP の動作確認
PHP が正常にセットアップされたかを確認するために、Apache のドキュメントルートに下記のスクリプトを配置し、ブラウザ上に表示されることを確認します。OCI8 がインストールされているかを確認することを忘れないようにしましょう。
<?php //date_default_timezone_set("Asia/Tokyo"); phpinfo();