|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-02-10 16:12 UTC] jnavratil at houston dot rr dot com
Description:
------------
OCIEnvNlsCreate() failed. Message asks to check that ORACLE_HOME is set correctly. I've downloaded the latest snapshot ('php5.1-200602101330') and patched oci8.c to report getenv("ORACLE_HOME") into the error_log and verified that it is correct. CLI version will properly connect, php5_module through Apache will not.
Configuration script to build php is:
./configure \
--cache-file=../config.cache \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--disable-debug \
--disable-rpath \
--with-bz2 \
--with-curl \
--with-gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --enable-gd-native-ttf \
--with-gettext \
--with-gmp \
--with-iconv \
--with-openssl --with-kerberos \
--with-pspell=/usr \
--with-pcre-regex=/usr \
--with-zlib \
--with-layout=GNU \
--enable-exif \
--enable-ftp \
--enable-magic-quotes \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-shmop \
--enable-wddx \
--with-pear=/usr/share/pear \
--enable-ucd-snmp-hack \
--enable-memory-limit \
--enable-calendar \
--with-mime-magic=/etc/httpd/conf/magic \
--without-sqlite \
--with-libxml-dir=/usr \
--with-xml \
--with-apxs2=/usr/sbin/apxs \
--without-mysql \
--without-odbc \
--disable-dba \
--with-oci8=/opt/app/oracle/product/10.2.0/db_1
Reproduce code:
---------------
$dbh = OCILogon('my-user', 'my-pwd', 'my-db');
Expected result:
----------------
I expect a valid database resource
Actual result:
--------------
$dbh is boolean false. Error_log contains:
[Fri Feb 10 08:58:58 2006] [error] [client 127.0.0.1] PHP Warning: ocilogon() [<a href='function.ocilogon'>function.ocilogon</a>]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in /opt/www/html/listViews.php on line 3
[Fri Feb 10 08:58:58 2006] [error] [client 127.0.0.1] PHP Warning: ocilogon() [<a href='function.ocilogon'>function.ocilogon</a>]: /opt/app/oracle/product/10.2.0/db_1 in /opt/www/html/listViews.php on line 3
Note: '/opt/app/oracle/product/10.2.0/db_1' is my correct ORACLE_HOME and is reported using getenv("ORACLE_HOME").
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 08:00:01 2025 UTC |
ORACLE_HOME was set in /etc/sysconfig/httpd along with... ORACLE_BASE=/opt/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME TNS_ADMIN=$ORACLE_BASE/product/10.2.0/db_1/network/admin; export TNS_ADMIN PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH (As an aside, I experimented with these variables and *BELIEVE* ORACLE_HOME was the only one necessary, but I was running the CLI version) ORACLE_HOME permissions are set to 755. The patch to oci8.c consisted of adding... php_error_docref(NULL TSRMLS_CC, E_WARNING, getenv("ORACLE_HOME")); ... just below ... php_error_docref(NULL TSRMLS_CC, E_WARNING, PHP_OCI_INIT_FUNC_NAME "() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory"); ... to report the actual value into the /var/log/httpd/error_log. I then remade and installed PHP5.