php7 Oracleに接続 sourceからインストール
公開日: : php
phpからORACLEのDBに接続するには2つのソフトウェアが必要
- Instant Client
- oci8
Instant Client
Instant Clientとは
Oracle Instant Clientとは何ですか。
Oracle Instant Clientとは、リモートの(またはローカルの)Oracle Databaseに接続するアプリケーションを作成し、実行する際に有用なOracle Databaseライブラリ、ツール、およびヘッダー・ファイルを再パッケージ化したものです。Instant Clientは、OCI、OCCI、Pro*C、JDBC、ODBCアプリケーションのほか、PHPのOCI8、Pythonのcx_Oracle、 Node.jsのnode-oracledb、Rubyのruby-oci8 APIなどのスクリプト言語ドライバを実行するために使用できます。SDKパッケージによって、OCIやOCCI APIを使用するCおよびC++プログラムのコンパイル用のヘッダー・ファイルが提供されます。SQL*Plus、Workload Replay Client、Data Pump、SQL*Loaderなどのユーティリティも、Instant Clientパッケージで利用可能です。入手可能なInstant Clientパッケージについては、Oracle Instant Clientのホームページを参照してください。
ちなみに、oci8入れてなくても、Instant ClientだけいれとけばコマンドラインからはORACLEが操作できるらしいす。
download
最新のバージョンしか見つからない。。。
インストール方法
zipの場合、解凍するだけやな。。
SDKのも解凍する必要があると書いてある。
実際、SDKを入れずにphpを./configure したら以下の通り怒られた。
checking Oracle Instant Client SDK header directory... configure: error: Oracle Instant Client SDK header files not found
今回は上記のBasicとSDK以外にコマンドラインでORACLEに接続できるsql*plusを入れることとした。
そのため、以下の3つをダウンロードした。
- instantclient-basic-linux.x64-18.5.0.0.0dbru.zip
- instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip
- instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip
それぞれを同じフォルダ内に配置し、unzipコマンドで解凍すると、「./instantclient_18_5/」というフォルダ内にすべてが解凍される。
この状態でphpの./configure –with-oci8=instantclient,/usr/local/lib/instantclient_18_5 (他にもオプションは付けた)を実施したら、うまくいった。
oci8
oci8についてはphpのソースに含まれていた。configureを実施すると、以下のログが出力された。
checking for Oracle Database OCI8 support... yes [1266/3721]
phpの ./configure のオプションには –with-oci8=instantclient,/usr/local/lib/instantclient_18_3 を付与している。
によると
OCI8 エクステンションを有効にするには、オプション –with-oci8 とともに PHP を構成します。
とある。
また、
無料の » Oracle Instant Client ライブラリを使用している場合、こうします
./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib
とある。
Googleアドセンスレスポンシブ
関連記事
-
phpで PHP Parse error: syntax error, unexpected ‘$’, expecting ‘)’ の原因
エラーメッセージの意味 簡単に説明すると ")"付近(直前)のソースコードに、想定外の
-
phpの変数などにつく「_」アンダースコアについて調べた
ちょこちょこいろんなところで見てモヤモヤしておりました。phpだけじゃなくて職場の先輩がbash
-
php アットマーク
意味 @マークをつけると、エラーを表示させない。 どこで使うか 関数とか変数の頭につける。
-
phpのコンストラクタ
コンストラクタとは classがnewされた瞬間に実行されるfunction。 php3、p
-
php7の互換性チェック
qiitaの記事のとおりでうまくいった。(ありがとうございます!) 通すPat
-
php parent 親クラスのプロパティやメソッドにアクセスする
子クラスで使う すると親クラスのプロパティやメソッドにアクセスできる 例:pare
-
php require_onceで相対パスで指定する
相対パスで指定する書き方 理由 require_onceしたファイル先で
-
phpでOracleにセッション張りっぱなしになる
Oraの画像がでかい…笑 事象 仕事で相談を受けた。 「Webサイトへの同時アクセス数が大
-
php 7.4をソースからインストール時にchecking for sqlite3 > 3.7.4… no configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
原因 sqliteのパッケージがなかったため。 対応 インストールする。
-
php require_onceでDocumentRootからのパスで指定する
やり方 相対パスで書く場合 こちら