[Oracle] DBA工作备忘录:Apache上部署Pro*c常见错误两例

整理:Fenng
日期:14-Oct-2004
出处:http://www.dbanotes.net
版本:0.91

在Apache上部署Pro*c程序 ,经常会出现服务器500错误。最近测试Linux上的Oracle iAS, 遇到问题不少,在这里把解决500错误的过程和大家大致描述一下,希望对大家能有所帮助。

情况1


我们请求的连接:
http://192.168.0.116:7777/cgi-bin/test
浏览器得到的错误信息如下:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable 
to complete your request.
Please contact the server administrator, root@Localhost and inform them of 
the time the error occurred,and anything you might have done that may have 
caused the error.

More information about this error may be available in the server error log.
一般的,我们先检查Apache的Logs目录下的error.log文件。得到Log信息,提示如下:
test: error while loading shared libraries: libclntsh.so.8.0: cannot open 
shared object file: No such file or directory
既然提示信息是找不到libclntsh.so.8.0文件,首先看看系统是不是有这个库文件:
[oracle@Linux lib]$ pwd
/u/app/oracle/product/8.1.7/lib
[oracle@Linux lib]$ ls -l libcln*
lrwxrwxrwx 1 oracle root 16 Oct 23 13:56 libclntsh.so -> libclntsh.so.8.0
-rwsrwxr-x 1 oracle root 6285134 Oct 23 13:56 libclntsh.so.8.0
-rwsrwxr-x 1 oracle root 8689756 Oct 23 13:57 libclntst8.a 
文件是存在的,看来是环境变量有问题,接下来检查环境变量:
[oracle@Linux lib]$ set | grep LIB
LD_LIBRARY_PATH=/u/app/oracle/product/ias/lib:/lib:/usr/lib:/usr/openwin/lib

问题定位到:用户的环境变量不正确。修改环境变量后,得到解决。

情况二

系统环境:多加了Oracle 9ias ,其它同上。Apache是用iAS 默认的安装。 同样出现500错误。日志中的信息仍然是:

test: error while loading shared libraries: libclntsh.so.8.0: cannot open 
shared object file: No such file or directory
有了上次的经验,逐一的查找.....居然...不管用--用户环境变量正确,在Shell下执行test程序,可以执行,并输出正确结果。 查找Google,Metalink,得到的信息大致如下:Apache 的环境变量不正确。建议在httpd.conf文件中加入:
SetEnv ORACLE_HOME 'your path'
SetEnv ORACLE_SID 'your sid'
SetEnv LD_LIBRARY_PATH 'your lib path' 
尝试之后,没有一点作用。看来,解决的方法不对路。 从头分析:登录到oracle用户下,此时环境变量正确的,然后启动/停止Apache,用的是 apachectl start/stop命令. apachectl 这个脚本中也会涉及到环境变量,apachectl命令会不会有问题??
$more apachectl 
找到了这样一段:
if [ -z "$LD_LIBRARY_PATH" ]
then
	LD_LIBRARY_PATH=/u/app/oracle/product/ias/lib ; 
	export LD_LIBRARY_PATH
else
	LD_LIBRARY_PATH=/u/app/oracle/product/ias/lib:${LD_LIBRARY_PATH} ; 
	export LD_LIBRARY_PATH
fi 

看来是ias惹的祸!修改该路径之后,问题解决。

参考信息


Prc*C 样例文件 - http://www.dbanotes.net/Books/ProC-Sample.pdf 
Google 搜索引擎 - http://www.google.com


本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。 目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:http://www.dbanotes.net/ 。 可以通过电子邮件 [email protected] 联系到他。

原文出处

http://www.dbanotes.net/Oracle/Oracle-ProC-Troubleshooting-I.htm

回上页<-|->回首页

All Articles (by Fenng) are licensed under a Creative Commons License.
I would welcome any feedback. Please send questions, comments or corrections to [email protected]
Valid XHTML 4.01 / Valid CSS