This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 30th, when you will be able to use this site as normal.

    Forum Stats

  • 3,889,844 Users
  • 2,269,775 Discussions
  • 7,916,823 Comments

Discussions

Connecting to Oracle 19c from PHP

NuGlamSMS
NuGlamSMS Member Posts: 74 Blue Ribbon
edited May 4, 2022 12:45PM in PHP

I have a Centos 8 server where I have installed PHP.

Then I installed OCI8 with this final result:

----------------------------------------------------------------------

Libraries have been installed in:

  /var/tmp/pear-build-rootwzbyph/oci8-2.2.0/modules


If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the '-LLIBDIR'

flag during linking and do at least one of the following:

  - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable

   during execution

  - add LIBDIR to the 'LD_RUN_PATH' environment variable

   during linking

  - use the '-Wl,-rpath -Wl,LIBDIR' linker flag

  - have your system administrator add LIBDIR to '/etc/ld.so.conf'


See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------


Build complete.

Don't forget to run 'make test'.


running: make INSTALL_ROOT="/var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0" install

Installing shared extensions:   /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr/lib64/php/modules/

running: find "/var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0" | xargs ls -dils

42049960  0 drwxr-xr-x 3 root root   17 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0

20799814  0 drwxr-xr-x 3 root root   19 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr

25928868  0 drwxr-xr-x 3 root root   17 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr/lib64

33561584  0 drwxr-xr-x 3 root root   21 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr/lib64/php

42049964  0 drwxr-xr-x 2 root root   21 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr/lib64/php/modules

42049963 884 -rwxr-xr-x 1 root root 901808 Apr 26 18:40 /var/tmp/pear-build-rootwzbyph/install-oci8-2.2.0/usr/lib64/php/modules/oci8.so


Build process completed successfully

Installing '/usr/lib64/php/modules/oci8.so'

install ok: channel://pecl.php.net/oci8-2.2.0

configuration option "php_ini" is not set to php.ini location

You should add "extension=oci8.so" to php.ini

---

I added the line extension=oci8.so to the php.ini file.


Now i don't get errors when trying to make a query, but it doesn't return any result.

I have query the phpinfo and I see OCI8 is correctly enable, but I don't see the PDO driver enabled for OCI.


Do I have to install PDO? I have read that OCI8 and PDO are two completely different PHP extensions designed to connect to Oracle databases

In case I have to install PDO, where can I find the instructions to follow for my server version?

This is my php version:

# php --version

PHP Warning: Module 'oci8' already loaded in Unknown on line 0

PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies


Thank you in advance.

Tagged:

Answers

  • Roland Mueller
    Roland Mueller FinlandMember Posts: 79 Blue Ribbon

    Installing some web server related stuff under /var/tmp is not a good practice and it may be that in Redhat EL familily of Linux distributions (RHEL, CentOS, Oracle Linux, ...) you may encounter SELinux errors because of the installation directory.