在RedHat Enterprise 4 上安装 Mono1.9 (四)

(1)Mono 安装  
(2)Apache和XSP 安装和配置  
(3)Castle MonoRails配置运行  

这两天,一直试图让我们的系统连接到Oracle,但是让我们很困惑的是,系统一直提示说:System.DllNotFoundException: libclntsh.so。Goole了一下,网上很多的人也是遇到了这个问题,参考他们的说明和方法,但是始终不能解决。后来我只好换了一个操作系统,改用OpenSUSE,出乎意料,很顺利的连到Oracle。

其实在Linux上配置Oracle应该是比较简单,以OpenSUSE为例:

  1. 首先去下载一个Oracle的 Oracle Instant client,很小,只有几十M。
  2. 解压缩并Copy到Linux的某个文件夹,比如 :/home/oracleclient.
  3. copy一个tnsnames.ora文件到这个文件夹。或者自己写一个按照如下格式:
    ORA10G =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ora10g)
        )
      )
  4. 在Apache的配置文件中加入:
    export LD_LIBRARY_PATH=/home/oracleclient:$LD_LIBRARY_PATH
    export TNS_ADMIN=/home/oracleclient
  5. 客户端文件夹中可能只有一个libclntsh.so.10.1,因此你可以做一个连接文件libclntsh.so,或者修个/etc/mono/config, 中的oci到libclntsh.so.10.1
  6. 重新启动Apache
  7. 启动应用程序测试。
  8. 如果Oracle出来的中文是乱码,则需要在Apache的配置文件在加入:
    export NLS_LANG=american_america.AL32UTF8

以上的安装假定,Oracle数据已经安装在另外一台服务器上。那么这台Mono服务器几乎不需要安装复杂的Oracle Client。但是这些配置在ReaHat上就不起作用,它一如既往的找不到DLL。难道是因为它是数据库服务器呢?还是因为它的Apache安装配置不正确?这还需要进一步求证。

接下来的Oracle测试中,大部分都可以使用,但是 使用OracleClientFactory.Instance获取DBFactory的地方却一直出错。难道Mono还没有实现这个Factory?

posted @ 2008-05-29 20:14  行知  阅读(2724)  评论(10编辑  收藏  举报