锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 英语翻译 / Apache / 无法加载Oracle.so和无效命令PerlHandler
服务方向
软件开发
办公财务MIS
股票
设备监控
网页信息采集及控制
多媒体
软件开发培训
Java 安卓移动开发
Java Web开发
HTML5培训
iOS培训
网站前端开发
VC++
C++游戏开发培训
C#软件
C语言(Linux)
ASP.NET网站开发(C#)
C#软件+ASP.NET网站
SOCKET网络通信开发
COMOLE和ActiveX开发
C++(Linux)
汇编和破解
驱动开发
SkinMagicVC++换肤
流媒体开发
MicroStation二次开发
计算机英语翻译
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。需要全文内容也请联系孙老师。

无法加载Oracle.so和无效命令PerlHandler


install_driver(Oracle)失败:无法加载“……/ DBD / Oracle / Oracle.so”

install_driver(Oracle) failed: Can’t load
’/usr/lib/perl5/site_perl/5.005/i386-linux/auto/DBD/Oracle/Oracle.so’
for module DBD::Oracle:
libclntsh.so.8.0: cannot open shared object file:
No such file or directory at
/usr/lib/perl5/5.00503/i386-linux/DynaLoader.pm line 169.
at (eval 27) line 3
Perhaps a required shared
library or dll isn’t installed where expected at
/usr/local/apache/perl/tmp.pl line 11

On BSD style filesystems LD_LIBRARY_PATH is not searched for setuid programs (a.k.a., Apache). This isn’t a problem for CGI script since they don’t do a setuid (and are forked off), but Apache does, and mod_perl is in Apache. Therefore the first solution is to explicitly load the library from the system wide ldconfig configuration file:

在BSD风格的文件系统LD_LIBRARY_PATH不为setuid程序(或称Apache)搜索。这不是一个CGI脚本的问题,因为他们没有做一个setuid(并且分叉关闭),但是Apache可以做,并且mod_perl在Apache中。因此,第一解决方案是明确地从系统范围配置LDCONFIG文件加载库:

# echo $ORACLE_HOME/lib >> /etc/ld.so.conf    
# ldconfig

Another solution to this problem is to modify the resulting Makefile ( after running perl Makefile. PL) as follows: 这个问题的另一个解决方案是修改Makefile的结果(运行perl Makefile.PL之后)如下:

1. search for the line LD_RUN_PATH= 搜索行LD_RUN_PATH=

2. replace it with LD_RUN_PATH=(my_oracle_home)/lib 把它换成LD_RUN_PATH =(my_oracle_home)/ lib

(my_oracle_home) is, of course, the home path to your oracle installation. In particular, the file libclntsh.so.8.0 should exist in that directory. (If you use CPAN, the build directory for DBD::Oracle should be in ~/.cpan/build/DBD-Oracle-1.06/ if you’re logged in as root.)

(my_oracle_home)当然是oracle的安装路径。特别是,该文件libclntsh.so.8.0 shoulderstand存在于DASS目录。(如果你作为根用户登录,使用CPAN,DBD::Oracle的构建目录应该在~/.cpan/build/DBD-Oracle-1.06/)。

Then, just type make install, and all should go well. 然后,输入make install,应该不会错。

FYI, setting LD_RUN_PATH has the effect of hard-coding the path to (my_oracle_home)/lib in the resulting Oracle.so file generated by the DBD::Oracle so that at run-time, it doesn’t have to go searching through LD_LIBRARY_PATH or the default directories used by ld. 仅供参考,设置LD_RUN_PATH的写入程序的路径(my_oracle_home)/ lib作为通过DBD::Oracle产生的Oracle.so文件,以便在运行时,它没有通过ld搜索LD_LIBRARY_PATH或默认目录。

For more information see the ld manpage and an essay on LD_LIBRARY_PATH: http://www.visi.com/~barr/ldpath.html 欲了解更多信息,请参阅ld手册页和LD_LIBRARY_PATH散文:http://www.visi.com/~barr/ldpath.html

Invalid command “PerlHandler”... 无效命令“PerlHandler”……

Syntax error on line 393 of /etc/httpd/conf/httpd.conf:

Invalid command ’PerlHandler’, perhaps mis-spelled

or defined by a module not included in the server configuration [FAILED]

This can happen when you have a mod_perl enabled Apache compiled with DSO (generally it’s an installed RPM or other binary package) but the mod_perl module isn’t loaded. In this case you have to tell Apache to load mod_perl by adding:
当你有一个mod_perl启动Apache编译DSO(通常是一个已安装的RPM或其他二进制包)但mod_perl模块不加载时可能会发生这种情况。在这种情况下你必须告诉Apache加载mod_perl,方法如下:

AddModule mod_perl.c
in your httpd.conf. 在你的httpd.conf中。

This can also happen when you try to run a non-mod_perl Apache server using the configuration from a mod_perl server.

当你使用配置试图从一个mod_perl服务器运行一个non-mod_perl Apache服务器时这也会发生。

友情链接
版权所有 Copyright(c)2004-2015 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州市文化路47号院1号楼4层(47-1楼位于文化路和红专路十字路口东北角,郑州大学工学院招待所南边,工学院科技报告厅西边。)