|
|
发表于 2006-3-17 14:49:31
|
显示全部楼层
安装了Oracle后,才可以与PHP整合,具体怎么安装Oracle用baidu google
a.设置好ORACLE_HOME环境变量(Oracle的安装目录)
b.Apache以DSO方式安装 ./configure --enable-module=so
c.重装编译安装PHP,并加上--with-oci8=$ORACLE_HOME
d.注意,还要设置LD_LIBRARY_PATH环境变量
引用:
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
另外,如果运行时如果要用到这个变量,可以加入到/etc/ld.so.conf中。比如,在/etc/ld.so.conf中加入
/opt/oracle/product/9.2.0/lib
e.改Apache的启动脚本
Apache启动的时候,要有环境变量ORACLE_HOME,如果是RHEL3自带的Apache,则需要在/etc/init.d/httpd里,加入如下两句:
引用:
在/etc/init.d/httpd的31行后,加入:
#在这句之后
# RETVAL=0
ORACLE_HOME=/opt/oracle/product/9.2
ORACLE_SID=koook
#ORACLE_SID可以不用设置,但登录是要指定SID
export ORACLE_HOME ORACLE_SID
另外,如果是自安装的Apache,用apachectl启动的话,可以写一个脚本,如下:
引用 oracle-apache-ctl)
#!/bin/sh
ORACLE_HOME=/opt/oracle/product/9.2
ORACLE_SID=koook
export ORACLE_HOME ORACLE_SID
echo "Oracle Home: $ORACLE_HOME"
echo "Oracle SID: $ORACLE_SID"
echo Starting Apache
./apachectl start
(另外,可能还需加入NLS_LANG环境变量,防止乱码)
以下是测试:
<?php
$db_conn = ocilogon( "system", "syspassword","koookdb");
//koookdb在Netca里设置,或修改tnsnames.ora文件
$cmdstr = "select ename, sal from scott.emp";
$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);
$nrows = ocifetchstatement($parsed, $results);
echo "<html><head><title>Oracle PHP Test</title></head><body>";
echo "<center><h2>Oracle PHP Test</h2><br>";
echo "<table border=1 cellspacing='0' width='50%'>\n<tr>\n";
echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n";
for ($i = 0; $i < $nrows; $i++ )
{
echo "<tr>\n";
echo "<td>" . $results["ENAME"][$i] . "</td>";
echo "<td>$ " . number_format($results["SAL"][$i], 2). "</td>";
echo "</tr>\n";
}
echo "<tr><td colspan='2'> Number of Rows: $nrows</td></tr></table>";
echo "<br><em>If you see data, then it works!</em><br></center></body></html>\n";
?> |
|