关于连接远程数据库的问题,100分求救

rengs 2003-04-15 10:15:20
我在一台linux服务器上安装了apache,php和oracle客户端,另一台服务器安装了oracle8.1.7。在linux web服务器上已经配置好了tns
(用sqlplus system/manage@test可以访问数据库),数据库名是test
但在运行页面的程序出现以下报错,请高手帮忙诊断。。。
web服务器只是安装了oracle client
<?
putenv("ORACLE_SID=test");
putenv("ORACLE_HOME=/home/oracle/product/8.1.7");
$handle = ora_plogon("system@test","manager") or die;
$cursor = ora_open($handle);
ora_commitoff($handle);

?>
Unable to connect to ORACLE (Error while trying to retrieve text for error ORA-12154)
...全文
71 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rengs 2003-04-15
  • 打赏
  • 举报
回复
to 楼上:
不行啊,报错是
Warning: _oci_open_server: Error while trying to retrieve text for error ORA-12154
goodname 2003-04-15
  • 打赏
  • 举报
回复
运行一下这个,看看有什么错误
<?
$connection = OCILogon ("scott", "tiger","orcl") or die(OCIError($connection));
$query = "select * from emp order by empno desc";
$cursor = OCIParse ($connection, $query) or die(OCIError($connection));

$result = OCIExecute ($cursor) or die(OCIError($connection));

echo "<table width='100%' border='1' cellspacing='0' cellpadding='0' bordercolorlight='#000000' bordercolordark='#FFFFFF' bgcolor='#CCCCFF'>\n";
echo "<tr bgcolor='#aaaaFF'><td>编号</td><td>姓名</td><td>工作</td></tr>\n";
while (OCIFetchInto ($cursor, $values))
{
echo "<tr>\n";
for($i=0;$i<3;$i++)
{
echo "<td>$values[$i]</td>\n";
}
echo "</tr>\n";
}
echo "</table>";


OCICommit ($connection);
OCILogoff ($connection);

?>
goodname 2003-04-15
  • 打赏
  • 举报
回复
把nobody用户加到dba组里,保证nobody用户
对tnsnames.ora文件有存取权限,否则PHP程序将会出现ORA-12154错误。
rengs 2003-04-15
  • 打赏
  • 举报
回复
将nobody加到dba组里是不是修改/etc/group文件
然后在dba那行加入nobody?
我是用这个方法的,居然不行
goodname 2003-04-15
  • 打赏
  • 举报
回复
apache是以nobody的身份来运行的,当然要读取到oracle的变量的。
nobody用户加到dba的组里面,我认为应该没问题的。
rengs 2003-04-15
  • 打赏
  • 举报
回复
我看到了二楼说的啊,我修改/etc/group文件,将nobody加到dba那里去还是不行
然后我chown tnsnames.ora 为nobody还是不行。。。
我是用oracle用户来设置oracle变量的,可能这样的话nobody用户就无法读取oracle变量了吧
goodname 2003-04-15
  • 打赏
  • 举报
回复
我说的那个方法你用一下,应该能行的。
goodname 2003-04-15
  • 打赏
  • 举报
回复
我晕,2楼我就怀疑这个问题了!!!!!!!!!!

我都写上了,你没看到吗?我还以为配置好了呢!!!
rengs 2003-04-15
  • 打赏
  • 举报
回复
呵呵,谢谢,我折腾了半天终于解决了这个问题
解决方法是修改http.conf文件将下面两行
User nobody
Group nobody
改为:
User oracle
Group dba
然后就可以了。。。
虽然你说的方法没有解决我的问题,但多少有提示,并且也只有你回答我的问题,
所以100分还是给你
goodname 2003-04-15
  • 打赏
  • 举报
回复
我这边使用win client连接sunos上的db server,比较熟悉这个环境。
阁下的问题,我暂时没时间模拟。。没这方面的经验..sorry
rengs 2003-04-15
  • 打赏
  • 举报
回复
各位再看看啦。。。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧