Topic: PHP 5.3.2 64 bit & Oracle Instant client

I'm trying to actually use a RHEL 5 based system (Oracle Enterprise Linux, actually) and build from SRPM's php 5.3.2.  I need to do various things, and use the Oracle Instant Client. 

I'm curious what RPM you used for your instant client, and where it's installed.  I don't believe you're using the official ones, as the 64 bit ones put there files in locations that aren't compatible w/o changes to the SPEC file.  I also can't get oci8-pdo to recognize that the libraries are present. 

I do, however, have a line into Oracle directly, and their OS team.  I'd like to get the RPM's fixed, to properly place their files in ideal locations, and actually fix their provides sections.

We also had issues w/ moving to Instant Client 11.2 on 5.3.1, but I'll be retesting w/ your 5.3.2 SRPM.

Re: PHP 5.3.2 64 bit & Oracle Instant client

I have wrote some articles about how to use Oracle Instant Client

For Now, I used a home build RPM of instant client 11.1 which fix install directories and set library PATH.
The php RPM also use a patch to use this. (But official Oracle RPM can be used with some configuration tips given in the previous links)

I can't build PHP against version 11.2 because of some headers conflicts (mainly ldap, I need to work on this)

The nosource RPM (SRPM but without the Oracle sources) is available in the repository : oracle-instantclient-x86_64-11.1.0.7-1.fc10.remi.nosrc.rpm

I'd like to get the RPM's fixed, to properly place their files in ideal locations, and actually fix their provides sections.

Yes ! It will be great.

+

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: PHP 5.3.2 64 bit & Oracle Instant client

OK, I'm not too worried about it.  We have some header issues too, i believe,  with LDAP, IIRC.

I'll look at your docs, and try to replicate them.  I'd much prefer to have Oracle fix their RPM's, to be good citizens. 

Things like:
1) proper provides: headers.
2) placing their files in the proper lib_dir for 64 bit-    they use /usr/lib/oracle/client64, vs /usr/lib64/client/oracle.

I'll see what I can manage, though.  Anything else you'd like from them?  We pay enough money to Oracle to be able to actually get them to listen, especially when we are alpha & beta testing new OCI8 code.

Thanks! 

(now I've got to figure out how to take over an older EPEL set of pacakges, for someone that no longer has time to maintain them. What fun...)

Re: PHP 5.3.2 64 bit & Oracle Instant client

Main things expected for usable Oracle official RPM is

- provides libraries (which could be required by tora or php-oci8 for example)

$ rpm -q --provides oracle-instantclient-basic
libclntsh.so.11.1()(64bit)  
libnnz11.so()(64bit)  
libocci.so.11.1()(64bit)  
libociei.so()(64bit)  
libocijdbc11.so()(64bit)  

- libraries path configuration

$ cat /etc/ld.so.conf.d/oracle-instantclient-x86_64.conf
/usr/lib64/oracle/11.1.0.7/client64/lib

Then, any directories will be acceptable (even if it can be improved) as system will find them, and other applications will work "out of the box" (developpers or packagers could adapt themself)


I also ask them authorization to redistribute my binary client RPM to have a fully usable repository. Never get any answer.

+

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: PHP 5.3.2 64 bit & Oracle Instant client

(now I've got to figure out how to take over an older EPEL set of pacakges, for someone that no longer has time to maintain them. What fun...)

Which ones ?
Most of the LAMP stack is available in my repository.

+

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: PHP 5.3.2 64 bit & Oracle Instant client

Remi wrote:

Which ones ?
Most of the LAMP stack is available in my repository.
+


MogileFS pacakges.  They're already in EPEL, but need to be updated to the more recent versions,  and have a few changes put in place beyond the version upgrade. 

That, and probably build a php-pecl-mogilefs, from http://pecl.php.net/package/mogilefs

Again, not a huge issue.  I just love having a decent php-5.3.2 SRPM.  It makes my life so much easier smile

Re: PHP 5.3.2 64 bit & Oracle Instant client

Remi wrote:

Main things expected for usable Oracle official RPM is

- provides libraries (which could be required by tora or php-oci8 for example)

I'll look into these

Remi wrote:

- libraries path configuration

And these...

Remi wrote:

Then, any directories will be acceptable (even if it can be improved) as system will find them, and other applications will work "out of the box" (developpers or packagers could adapt themself)

Yep!

Remi wrote:

I also ask them authorization to redistribute my binary client RPM to have a fully usable repository. Never get any answer.

I doubt they will- they're annoyingly corporate that way.  I think the answer will have to be that people go to the nice Oracle page and download it from them, for free.  Maybe, if we're lucky, they will consider publishing a YUM repo w/ them, themselves.  That would be helpful.. but won't actually fix the dependency issue.    But if we can get their RPM up to snuff, we can at least all use the official RPM, which would make life easier.

8 (edited by mbarr 2010-04-15 16:21:39)

Re: PHP 5.3.2 64 bit & Oracle Instant client

$ rpm -q --provides oracle-instantclient-basic
libclntsh.so.11.1()(64bit)  
libnnz11.so()(64bit)  
libocci.so.11.1()(64bit)  
libociei.so()(64bit)  
libocijdbc11.so()(64bit)  

Doesn't actually seem to be in the SPEC file. 


I'm trying to integrate things, but I suspect the ld conf file is my present issue, for PDO build.  Let me test, and as I roll things back, I'll get back to Oracle.

Re: PHP 5.3.2 64 bit & Oracle Instant client

> Doesn't actually seem to be in the SPEC file. 
This is auto added provides by rpmbuild with standard Redhat/Fedora configuration.

> for PDO build.
The .src.rpm of php 5.3.2 include PDO Oracle driver

# php -m | grep -i oci
oci8
PDO_OCI
# rpm -ql php-oci8
/etc/php.d/oci8.ini
/etc/php.d/pdo_oci.ini
/usr/lib64/php/modules/oci8.so
/usr/lib64/php/modules/pdo_oci.so

+

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi