Nodachisoft Nodachi Sword Icon
  
@あまじ✎ 2017年10月18日に更新

CakePHP v2 +Oracle 11g XE で接続設定をする手順

今回の目的

今回はWebアプリを作るときに利用すると便利なフレームワークである CakePHP と Oracle DB の連携を行うまでの手順をまとめます。

前回は Apache + PHPプログラム + Oracle の連携ができるように設定し、実際にブラウザ上から Oracle のデータを参照するところまで行いました。

CakePHPの入手

まず、CakePHP 本体をダウンロードします。 この記事で取り扱う CakePHP は日本語版のリリースバージョン 2.4.10 です。

公式ページ「http://cakephp.jp」 からダウンロードできます。

dev_setting_07_cakephp_01

eclipse 上のプロジェクトへの取り込み

ダウンロードした圧縮ファイルの cakephp-2.4.1.zip を展開し、cakephp-2.4.1 以下のファイルを全て eclipse の workspace のプロジェクト「testphp」にコピーします。

dev_setting_07_cakephp_02

コピーが終わったら、Apacheを立ち上げブラウザからCakePHPに初アクセスします!

この状態で、Webサーバの Apache を立ち上げ、ローカルのWebサーバにブラウザ経由でアクセスすると、以下のようなページが表示されます。

※Oracle や PHP、Apache の設定は当連載記事の前ページで実施しています。正常に画面が開けないようでしたら、連載の前ページを見直してみてくださいね。

dev_setting_07_cakephp_03

とりあえずCakePHP自体は動作しているようです。

いくつか画面上に赤い枠で警告文が出ていますが、とりあえず問題ありません。セキュリティのために暗号化プログラムのソルト値を変更してね、という内容なのですが、今回の本筋とは関係ないので詳細は割愛します。

CakePHPのデータベース接続用設定ファイルを編集

このままではまだ CakePHP から Oracle DB に接続できてはいません。

Eclipse に導入した CakePHP フォルダの /app/Config/database.php.default というファイルをリネームし、同じフォルダ内に database.php というファイル名になるよう変更しましょう。

ファイル名を変更したら、database.php の中身を開いてDB接続用の変数内容をOracle DB 用に書き換えます。

database.php
/** Oracle に接続するテスト用設定 */
var $default = array(
    'datasource' => 'Database/Oracle',
    'driver' => 'oracle',
    'connect' => 'oci_connect',
    'persistent' => true,
    'host' => '',
    //'port' => '1521', // localなら指定しなくてもつながる。
    'login' => 'testap', // 設定したユーザ名
    'password' => 'testpw', // 設定したパスワード
    'database' => '',
    'prefix' => '',
    //'encoding' => 'UTF8', // oracle接続用では見ていない変数だった?
    'charset' => 'AL32UTF8' // こちらの設定が使用されるみたい。
);

しかし、これだけでは Oracle にうまく繋がらず。 実際にデータベースの中身を見ようとすると、 「Datasource に Oracle 用の DBO レイヤーが必要なのに、存在しない!」と怒られます。

ですので、 ひとつ前のバージョンである CakePHP ver1.2.0.4041 を別途ダウンロードして、zip解凍し、いい感じに記載された Oracle.php (DBOレイヤー)ファイルを持ってきます。

/lib/Cake/Model/Datasource の中に Oracle.php をコピー。

再度、ブラウザからアクセスしてみると、

dev_setting_07_cakephp_04

やりました!接続できたとのこと。

デフォルトでは CakePHP はSQL文と結果を表にして、ページ最下部にくっつけてくれるので、確認してみると、

dev_setting_07_cakephp_05

画面を表示した時にCakePHPが裏側で ALTER SESSION のSQL文で、日付フォーマットを変更するSQLを Oracle に送信していることがわかります。

とりあえず、CakePHP から Oracle 疎通もできたので、今回はここまでです。

おつかれさまでしたー!

Webアプリの開発環境をイチから作成シリーズ記事

連載内容
その1(Eclipse&Java SDK7 導入)
その2(Eclipse の Plugin 導入)
その3(Oracle DB 11g XE R2 インストール)
その4(Oracle DB 11g XE R2 疎通確認)
その5(XAMPP インストール)
その6(Apache + PHP + Eclipse連携)
その7(Apache + PHP + Oracle連携)
その8(CakePHP + Oracle連携) ←いまココ
その9(CakePHP + Oracle連携)

ページの更新履歴

更新日 更新内容
2013.10.13 ページ公開
2018.3.17 スマホからレイアウトが崩れて読みにくいので修正。ついでに文章構造と文章本体も自分以外の人が読めるように訂正。
 
 
送信しました!

コメント、ありがとうございます。

なんかエラーでした

ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。

Twitter:@NodachiSoft_jp
お名前:
 
連絡先:
 
メッセージ:
 
戻る
内容の確認!

以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください

お名前:
 
連絡先:
 
メッセージ:
 
Roboto からの操作ではないという確認のため確認キーを入れてください。
確認キー=95
戻る
 / 
送信確認へ
コメント欄
コメント送信確認へ

関連ありそうな記事(5件)です!

Apache、PHP、Oracle DBを連携させる手順

#開発環境#PHP#OracleDB#Apache✎ 2018-10-04
Apache、PHP、Oracle DB がそれぞれ連携して動くように設定する手順をまとめてます。テスト用に hosts の書き換えも実施。
広告領域
追従 広告領域
目次
CakePHP v2 +Oracle 11g XE で接続設定をする手順
CakePHP v2 +Oracle 11g XE で接続設定をする手順
今回の目的
今回の目的
CakePHPの入手
CakePHPの入手
eclipse 上のプロジェクトへの取り込み
eclipse 上のプロジェクトへの取り込み
CakePHPのデータベース接続用設定ファイルを編集
CakePHPのデータベース接続用設定ファイルを編集
Webアプリの開発環境をイチから作成シリーズ記事
Webアプリの開発環境をイチから作成シリーズ記事
ページの更新履歴
ページの更新履歴
Nodachisoft © 2020