problem oci_connect solved..thanks to those involved

problem oci_connect solved..thanks to those involved

am 21.11.2008 16:16:45 von Fred Silsbee

I would have had no problem if I had:

(1) used ZEND
(2) installed php, apache, oracle XE, oci8,instant client

I installed 11g1 Enterprise and that already had a client.

Fedora already had php 5 and apache 2

FINALLY: The following works in the browser.

hr/hr is automatically built in the 11g1 database


require('anyco_ui.inc');

$db = "(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = LMKIIIGDNSID)
)
)";
// oci_internal_debug(1); // turn on tracing
// $conn = oci_connect("/", "", null, null, OCI_SYSDBA);
// if ($conn=oci_connect('hr', 'hr','LMKIIIGDNSID'))
if ($conn=oci_connect('hr', 'hr',$db))
{
echo "Successfully connected to Oracle.\n";
// OCILogoff($conn);
}
else
{
$err = OCIError();
echo "Oracle Connect Error " . $err;
}

ui_print_header('Departments');
do_query($conn, 'SELECT * FROM DEPARTMENTS');
ui_print_footer(date('Y-m-d H:i:s'));

// Execute query and display results
function do_query($conn, $query)
{
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);

print '

';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print '';
foreach ($row as $item) {
print '';
}
print '';
}
print '
'.
($item ? htmlentities($item) : ' ').'
';
}

?>

What did I do:

in the file /etc/rc.d/init.d/httpd

I inserted statements starting with export position indicated by the surrounding code.

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
# new statements here
export ORACLE_HOSTNAME=localhost.localdomain
export TNS_ADMIN=/u01/app/oracle/product/11.1.0/db_1/network/admin
export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_SID=LMKIIIGDNSID
export LD_LIBRARY_PATH /u01/app/oracle/product/11.1.0/db_1/lib:/lib:/usr/lib

# new statements above

# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
$RETVAL = 0 && touch ${lockfile}
return $RETVAL
}

I had put similar statements in /etc/httpd/conf/httpd.conf (setenv). I will remove these statements (and see if it still works!)

It stopped working...so:

into /etc/httpd/conf/httpd.conf I had to add:
### Section 1: Global Environment
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
#

SetEnv ORACLE_HOSTNAME localhost.localdomain
SetEnv TNS_ADMIN /u01/app/oracle/product/11.1.0/db_1/network/admin
SetEnv ORACLE_BASE /u01/app/oracle
SetEnv ORACLE_HOME /u01/app/oracle/product/11.1.0/db_1
SetEnv ORACLE_SID lmkiiiGDNSID
SetEnv ORACLE_TERM xterm
SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/11.1.0/db_1/lib:/lib:/usr/lib

#
# Don't give away too much information about all the subcomponents
# we are running. Comment out this line if you don't mind remote sites
# finding out what major optional modules you are running
ServerTokens OS

Just noticed: OOOOPS!

in /etc/phi.ini I have: (tomorrow I'll see if it still works without this)

237 ; Note: If this directive is empty, PHP will let the user modify ANY
238 ; environment variable!
239 ; safe_mode_allowed_env_vars = PHP_
240
241 ORACLE_HOSTNAME="localhost.localdomain"
242 ORACLE_BASE="/u01/app/oracle"
243 ORACLE_HOME="/u01/app/oracle/product/11.1.0/db_1"
244 ORACLE_SID="lmkiiiGDNSID"
245 LD_LIBRARY_PATH="/u01/app/oracle/product/11.1.0/db_1/lib:/li b:/usr/lib"
246 TNS_ADMIN="/u01/app/oracle/product/11.1.0/db_1/network/admin "
247





--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php