Php, Oracle on Mac, with strange behaviour

From: Date: Fri, 13 Mar 2009 07:48:00 +0000
Subject: Php, Oracle on Mac, with strange behaviour
Groups: php.db 
Request: Send a blank email to php-db+get-46065@lists.php.net to get a copy of this message
Dear List, I have a puzzler, which I can't seem to fix. To summarise, I have installed PHP, apache from source and the oracle client (details below). I then construct a simple PHP script to connect to my oracle database. When I run the script from the command line, it works perfectly, and returns rows from the database. bash$ php oracle.php Using : /opt/oracle/instanceclient, ORACLE_HOME=/opt/oracle/instanceclient Successfully connected to Oracle. <table border="1"><tr><td>71</td><td>71</td><td>421.4983</td><td>421.4983</td><td>C23 H27 N5 O3</td><td>C23 H27 N5 O3</td> Buuuut, when I try to view this through a browser, it returns this error: Using : /opt/oracle/instanceclient, ORACLE_HOME=/opt/oracle/instanceclient Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in/Library/WebServer/Documents/oracle.php on line 25 Oracle Connect Error Here are the details of my installation and a few things I have tried: Apache: Installed apache (httpd-2.2.11) with the following configuration: --prefix=/usr/local/apache --enable-module=so No Errors PHP Installed PHP (php-5.2.9) with the following configuration: --with-apxs2 -enable-cli --with-mysql=/usr/local/mysql/ --exec-prefix=/usr --localstatedir=/var --libexecdir=/System/Library/Apache /Modules --enable-shared=max --with-gd=/usr/local --with-zlib --with-oci8=instantclient,/opt/oracle/instanceclient -enable-layout =Darwin -enable-mods-shared=all --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --enable-si gchild No errors Oracle Client Installed Basic + all others in /opt/oracle/instanceclient No errors Oracle (Version 11g) is installed on a different server I will paste the PHP script I am using at the bottom of the mail. Now, as I said, it is working fine through the command line, so everything is setup fine, so I figure it must be a permissions problem. Hence, I chmod -R 755 $ORACLE_HOME and have tried running apache as lots of different users, but to no avail Thanks in advance Mark ##### PHP SCRIPT ##### <?php putenv("ORACLE_SID=orcl"); putenv("LD_LIBRARY_PATH=/opt/oracle/instanceclient"); $username = "#####";### I have hidden this for security $passwd = "#####"; ### I have hidden this for security echo("Using : ". getenv("LD_LIBRARY_PATH")); echo ", ORACLE_HOME=".getenv("ORACLE_HOME"); $db="(DESCRIPTION=
           (ADDRESS=(PROTOCOL=TCP)
             (HOST=########)(PORT=1521) ### I have hidden this for security
           )
           (CONNECT_DATA=(SERVER=DEDICATED)(SID=orcl)(SERVICE_NAME=orcl))
     )";
if ($c = OCILogon($username,$passwd,$db)) {
        echo "Successfully connected to Oracle.n";
        $s = OCIParse($c, "select * from COMPOUNDS WHERE rownum=1");
        OCIExecute($s, OCI_DEFAULT);
        print '<table border="1">';
        while ($row = oci_fetch_array($s, OCI_RETURN_NULLS)) {
                print '<tr>';
                foreach ($row as $item) {
                        print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
                }
                print '</tr>';
        }
        OCILogoff($c);
} else {
        $err = OCIError();
        echo "Oracle Connect Error " . $err[text]. "    ". $err[message];
} echo("<br />\n"); ##### END ##### _____________________________ Mark Halling-Brown Higher Scientific Officer, Computational Biology & Chemogenomics, Cancer Therapeutics, The Institute of Cancer Research 15 Cotswold Road Belmont, Surrey SM2 5NG, UK Tel: (+44)-20-8722-4300 (ext: 4659) Email: mhallingbrown@icr.ac.uk Web: http://www.markyhb.co.uk "A cynic is what an idealist calls a realist" The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company Limited by Guarantee, Registered in England under Company No. 534147 with its Registered Office at 123 Old Brompton Road, London SW7 3RP. This e-mail message is confidential and for use by the addressee only. If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer and network.

« previous php.db (#46065) next »