シェアする

  • このエントリーをはてなブックマークに追加





[Laravel][Homestead][Oracle] DB接続までの道のり

シェアする

  • このエントリーをはてなブックマークに追加
  • 0

Laravel + Vue + postgresql on Homestead で開発していて、

要件から外部のOracleへも別途接続しなくてはならなくなりました。

Oracleの場合は、mysqlやpostgresqlと違って結構手間がかかったので

ぶつかった課題の解決方法含めてメモ。

今回は試験として、AWSのRDSにてインターネット経由でOracleのインスタンスに

接続できるようにこちらを参考に構築して試しました。

※ありがとうございます!

まずは手順

おおまかな手順としては、

・Oracle Instant Clientをインストール

・oci8インストール

・PDO_OCIインストール

・Laravel設定となります。

ここでPDO_OCIインストールまではこちらを参考にざっくりと進めました。

Laravel設定はこちらを参考にしました。

課題1 コンパイルバージョンが合わない!

手順通りコマンドを実行していって、php -vで表示してみたところ、

peclや、make installしたときのバージョンが合わない問題が発生して、

稼働しているPHPから参照できなかったです。

具体的には、

こんな感じになってしまいました。

日付が入っているので「?」となりましたが、

要するにコンパイルしたときのモジュールのバージョンと

動作しているPHPのバージョンが違うよということみたいです。

Homesteadの中にはたくさんのPHPのバージョンが

あるので、デフォルトと違うバージョンを指定していると起こってしまいそうですね。

解決策としては、今回の場合であれば、

で、Homesteadで指定しているPHPのバージョンに合わせればOK。

僕の場合は、–config phpの他にphp-configとphpizeも変えました。

php-configはpecl installのために、phpizeはmake installのためにって感じですね。

課題2 OCI8 installでPHPバージョンが合わない!

次は、peclでOCI8をインストールするときに、

これだと、

phpバージョンが8以上じゃないとダメ!って怒られました。

解決策としては、oci8のバージョン指定です。

PHP7以上だと↓の方法(2.2.0指定)でよいそうですよ。

課題3 OCI8とPDO_OCIは読み込めたっぽいけどphpinfoに出てこない!

無事、php -vでエラーも出ないし、php -iでロードされているっぽいことは

確認できました。

でも、

こんな感じのエラーで接続できない!

定数が定義されていないとは??みたいに思いましたが、

どうやらOCI8が動作していないことが原因のようです。

そこで調べてみると、phpinfoにOCI8のセクションが表示されていない。

なるほど、読み込めたけど動いてなかったってことねと。

これが今回の一番のハマりどころでした。

解決策としては、

oci8.soのextensionの記述をmods-availableの下にoci8.iniを作成し、

fpm/conf.d配下にシンボリックリンクを作成したこと。

また、oracle.confを作成してldconfigしたこと。

の2つでOCI8がphpinfoに表示されるようになりましたー!!

課題4 laravel-oci8インストールでバージョン不整合

これだけだと、最新がインストールされるので、

laravelのバージョンと合わないとエラーになりました。

解決策としては、

でlaravelのバージョンを確認。

その後で、

みたいに「確認したメジャーバージョン.*」とすると、

laravelバージョンにあったlaravel-oci8がインストールされます。

課題5laravel-oci8のインストールでメモリ割当上限エラー

課題4の対応後、順調に処理が進んでいたのですが、

メモリ割当のlimitに達してエラーになってしまいました。

解決策としては、

として、memory_limitを設けないで実行することで解消しました。

まとめ

以上、laravelからOracleへ接続するために、

サイトどおりやってみて解決にハマってしまったことのメモでしたー。

誰かの助けになれば幸いですー。

ブログランキング・にほんブログ村へ
にほんブログ村


人気ブログランキング

20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。

今風にいうとフルスタックエンジニアということになるのかしら??

→ 詳細プロフィールというか、生い立ちはこちら

→スキルシートをご覧になる場合はこちら

→お仕事のご依頼やお見積りなどお問い合わせはこちらから!

シェアする

  • このエントリーをはてなブックマークに追加

フォローはいかがですか?