php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #76656 Unable to load dynamic library oci8
Submitted: 2018-07-23 08:06 UTC Modified: 2018-07-24 08:18 UTC
From: l dot straka at t-systems dot com Assigned: sixd (profile)
Status: Not a bug Package: OCI8 related
PHP Version: 5.6.37 OS: AIX IBM 7.1
Private report: No CVE-ID: None
 [2018-07-23 08:06 UTC] l dot straka at t-systems dot com
Description:
------------
I have PHP 5.6.32 , Apache/2.4.29 (Unix), instant client 12_1 and OCI8 oci8-2.0.12. 

I used this manual http://php.net/manual/en/oci8.installation.php and steps: "For a manual install when the pecl command is not available, download the PECL OCI8 package"

After .configure and make and make install , I start apache and in error log I see this : 

PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/freeware/lib/php/modules/oci8.so' - rtld: 0712-001 Symbol compiler_globals was referenced\n      from module /opt/freeware/lib/php/modules/oci8.so(), but a runtime definition\n\t    of the symbol was not found.\nrtld: 0712-001 Symbol executor_globals was referenced\n      from module /opt/freeware/lib/php/modules/oci8.so(), but a runtime definition\n\t    of the symbol was not found.\nrtld: 0712-001 Symbol core_globals was referenced\n      from module /opt/freeware/lib/php/modules/oci8.so(), but a runtime definition\n\t    of the symbol was not found. in Unknown on line 0
[Mon Jul 23 09:45:22.415279 2018] [mpm_prefork:notice] [pid 28835870] AH00163: Apache/2.4.29 (Unix) PHP/5.6.32 configured -- resuming normal operations
[Mon Jul 23 09:45:22.415463 2018] [mpm_prefork:info] [pid 28835870] AH00164: Server built: Dec 18 2017 08:44:23
[Mon Jul 23 09:45:22.415483 2018] [core:notice] [pid 28835870] AH00094: Command line: '/opt/freeware/sbin/httpd'
[Mon Jul 23 09:45:22.415493 2018] [core:debug] [pid 28835870] log.c(1567): AH02639: Using SO_REUSEPORT: no (1)
[Mon Jul 23 09:45:22.415499 2018] [mpm_prefork:debug] [pid 28835870] prefork.c(921): AH00165: Accept mutex: none (default: sysvsem)

I have exported all needed Oracle environment variables in apache envvars.




Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-07-23 09:50 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2018-07-23 09:50 UTC] cmb@php.net
Seems you're trying to load a non thread-safe extension into a
thread-safe PHP.  See the manual on how to properly build:
<http://php.net/manual/en/install.pecl.phpize.php>
<http://php.net/manual/en/install.pecl.static.php>
 [2018-07-23 12:25 UTC] l dot strala at t-systems dot com
I configured the oci8.so now with 
./configure .......................

-same problem

Also tried to install with pecl/pear. Same result, same error.

How can i force to be "thread safe" oci8 extension?
 [2018-07-23 12:49 UTC] cmb@php.net
phpize && ./configure … && make
 [2018-07-23 12:52 UTC] l dot strala at t-systems dot com
Yes, i did that exactly and getting this error.
 [2018-07-23 13:43 UTC] cmb@php.net
-Status: Feedback +Status: Open -Assigned To: cmb +Assigned To:
 [2018-07-23 21:07 UTC] kalle@php.net
-Status: Open +Status: Assigned -Assigned To: +Assigned To: sixd
 [2018-07-23 21:07 UTC] kalle@php.net
Assigning this to Christopher, perhaps Oracle got an idea (given it is AIX, which I remember having some interesting build issues throughout the years together with PHP)
 [2018-07-24 06:24 UTC] sixd@php.net
- Make sure PHP command-line works first.

- Please post to https://community.oracle.com/community/database/developer-tools/php until we determine there actually is a bug.  Post more details such as exactly what you put in envvars.
 [2018-07-24 07:24 UTC] l dot strala at t-systems dot com
PHP in command line works probably. Also OCI8. When I create simple phpinfo, and then php it in console then it shows info about OCI8. But when I open that php in browser it doesnt shows OCI8. Its interesting.
 [2018-07-24 08:18 UTC] sixd@php.net
I'll assume you tested OCI8 in command line PHP and it works.

You need to make sure you are setting all required Oracle environment variables for Apache, make sure you are using the right syntax, and/or need to find a different way to pass the Oracle environment variables to Apache.  Setting the environment is a common problem but has various solutions depending on OS and Apache version.

I don't know about AIX, but on RH Linux, adding variables to /etc/sysconfig/httpd is the way to go.  You may or may not need to 'export' them. They may or may not expand environment variables on the right hand side of the '='.
 [2018-07-24 08:18 UTC] sixd@php.net
-Status: Assigned +Status: Not a bug
 [2018-07-24 08:18 UTC] sixd@php.net
I'll close this.  Follow up on OTN if you have further questions.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 22:01:28 2024 UTC