downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

インストール手順> <インストール/設定
[edit] Last updated: Fri, 10 Feb 2012

view this page in

要件

OCI8 拡張モジュールには、Oracle 9iR2、10g あるいは 11g のクライアントライブラリが必要です。 もし Oracle Database が PHP と同じマシンで動いているのなら、 必要なライブラリはすでにそこに含まれています。 PHP が別のマシンで動いている場合は、無料で入手できる » Oracle Instant Client のライブラリを使いましょう。

Oracle Instant Client を使うには、basic 版あるいは basiclite 版の ZIP ファイルか RPM パッケージを使います。PHP をソースコードからビルドする場合は、 さらに sdk の ZIP ファイルあるいは devel RPM パッケージも必要です。

Windows では、バージョン 10gR2 以降に由来するクライアントライブラリが php_oci8 の DLL に対して必要です。 PHP 5.3.5 以前の PHP 5.3 では、Oracle 11gR1 以降のクライアントライブラリが php_oci8_11g の DLL に対して必要です。 PHP 5.3.6 からは、Oracle 11gR2 以降のクライアントライブラリが php_oci8_11g の DLL に対して必要です。 Instant Client のバージョンによっては、さらに mfc71.dllmsvcr71.dll が必要になるかもしれません。

PHP を動かすときには、少なくとも OCI8 をビルドしたときと同じバージョン以降の Oracle ライブラリをつかわなければなりません。

注意:

OCI8 が 9iR2 あるいは 10g のクライアントライブラリを使っている場合は、PHP から Oracle Database 8i, 9iR2, 10g あるいは 11g に接続することができます。 OCI8 が 11g のクライアントライブラリを使っている場合は、 接続できるデータベースは 9iR2, 10g あるいは 11g です。

注意:

OCI8 の全機能が使えるのは、 最新バージョンのクライアントライブラリとデータベースを使っているときだけです。



add a note add a note User Contributed Notes 要件
Anonymous 10-Feb-2012 06:33
How to connect from PHP to an Oracle database using OID (Oracle Internet Directory):

OID is like a lookup index that contains connection strings for connecting to various databases. Without OID, a database connection string would be stored directly in the code settings and used by the PHP code to connect to a database. With OID, a lookup can be made to the OID LDAP to acquire the database connection string. Then the PHP code will use the acquired database connection string to connect to the database as before.

OID allows a DBA to manage/change which database server that an application uses without having to change any database settings in the PHP application itself or on the application server.

Here are the basic steps for PHP to connect to a database via OID:

- The DBA should provide you the connection information for the OID LDAP as well as the username/password for the database connection.
- Connect to the OID LDAP using the provided information
- Search for the appropriate LDAP record
- Get the connection string data from the record attribute, "orclnetdescstring"
- Close the LDAP connection
- Use the acquired connection string data to connect to the database as usual using the provided database username/password.

Here is basic sample code to do this:

// Get connection string from OID LDAP

    $ds=ldap_connect($servername,$serverport); // Connect to ldap
    $r=ldap_bind($ds); // Bind to ldap
    $sr = ldap_search($ds, "cn=OracleContext,dc=___,dc=___,dc=___", "cn=$sid"); // Run query
    $info = ldap_get_entries($ds, $sr); // Get entries
    ldap_close($ds); // Close connection

    $dbconnectstring = $info[0]["orclnetdescstring"][0]; // Extract db connect string from ldap search result array

// Connect to database using acquired connection string from OID

    $dbconnection = oci_connect ($username,$password,$dbconnectstring);
dha at octo dot com 05-Jan-2011 04:04
If you plan to use Oracle Internet Directory with LDAPS, you NEED to compile the php-ldap library with Oracle Support.

Also, with OID 10g I had to create a folder, reference it in the env variable $ORACLE_HOME, and copy in it three ldap message files found in my OID installation.

At the end, my $ORACLE_HOME looked like this :
ldap
  mesg
    ldapf.msb
    ldapus.msb
    ldapus.msg
   
(Note that the ldapf.msb is here because I have a french installation of OID)

To use ldaps, you will need to use ldap_connect this way :

ldap_connect(host,port,"file://path/to/wallet",walletpassword,sslauth)

Your wallet only needs to contain the CA (secure) certificate.

with sslauth being :
  1 for no ssl authentication
  32 for ssl server authentication
  64 for ssl mutual authentication

 
show source | credits | stats | sitemap | contact | advertising | mirror sites