LaravelからOracleDBに接続する方法【WindowsOS】(2021年時点のメモ)

このページでは、WindowsOS上に構築したLaravel環境からOracleのDBに接続するための方法を紹介してます。

得られる結果

Laravelのプロジェクト内から、ローカルもしくはリモートのOracleDBに接続し、selectやinsertなどの操作をすることができます。

OracleDBに接続するまでに必要な作業

基本的に以下の作業が必要になります。

  1. Laravel環境を構築
  2. Oracle Instant Clientをダウンロード
  3. Oracle Instant Clientのdllをコピー(配置)
  4. PHP.iniの設定
  5. Laravel環境にOci8関連モジュールをインストール
  6. Oracleに接続

Laravel環境を構築

今回、LaravelのインストールはよくあるComposerを使用した方法で構築しました。

(例)composer create-project laravel/laravel=6.* [プロジェクト名] –prefer-dist

Oracle Instant Clientをダウンロード&dllの設置

公式サイトから「Oracle Instant Client」をダウンロードします。

▶Oracle公式サイトを見る

Oracle Instant Client ダウンロード対象

ご自身の環境にあったものをダウンロードしてください。

zipファイルなので解凍します。

解答したフォルダ内からdllファイルを(10個)コピーして、PHPフォルダ内に配置します。

PHP.iniの設定

php.iniファイルに以下を追記します。

extension=oci8_12c
extension=pdo_oci

※拡張子の.dllは記載しません
※その他プロジェクトの目的に応じて各種モジュールを有効にする必要あり

Laravel環境にOci8関連モジュールをインストール

以下のコマンドでLaravel環境で使用するOci8関連ライブラリをインストールします。

composer require yajra/laravel-oci8:"7.*" 

/config/app.phpの各種モジュールを読み込ませている箇所に下記を追記します。

Yajra\Oci8\Oci8ServiceProvider::class,

Oracleに接続

Laravelプロジェクトで.envファイルなどでDBの接続情報を定義します。

あとはプログラム内からOracleのDBに接続し、正常にselectなどが実行できれば完了です。

各ソフトウェアのバージョン

今回、各ソフトウェアは以下のバージョンを使用しました。

  • OS:Windows10(64bit)、Windows7(64bit)
  • Apache:2.4
  • PHP:7.4
  • Laravel:6、7
  • Oracle11g
  • Oracle Instant Client:12_1(64bit)

まとめ

今回とくにハマった部分は、Oracle Instant Clientのインストール(dllの設置)部分でした。

ネット上では、「C直下に設置してPathを通す」という話がたくさんありました。

ですが、僕の場合はぜんぜんOracleに接続できませんでした。

結果、PHPのフォルダ内(直下)に「zipを解凍したOracle Instant Clientフォルダ内のdll」10個をコピーして設置するだけで無事にDBに接続できました。

もし同じような環境で困っている方がおりましたら、参考になればと思います。

 

Category: ネットワーク・サーバー技術Tags: LaravelOracleWindows

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ten − 4 =