Rails Nginx 下部署 rails,连接 oracle 乱码

zhbinx · 2014年01月22日 · 最后由 zhbinx 回复于 2014年01月28日 · 3152 次阅读
  • 服务器
    • Ubuntu 12.04
  • 数据库
    • 自身 mysql
    • establish_connection 外部 oracle
  • Oracle 客户端配置

    #Oracle Instant Client 64-bit version export DYLY_LIBRARY_PATH=/opt/oracle/instantclient_12_1 export NLS_LANG=AMERICAN_AMERICA.UTF8 export PATH=$PATH:$DYLD_LIBRARY_PATH export ORACLE_HOME=$DYLD_LIBRARY_PATH

  • 现象

    • Nginx 下部署 rails,所有 oracle 相关的查询,中文乱码(显示为????)
    • 同一台机器,使用 rails s 命令启动服务,中文显示正常

请帅哥美女们给点解决办法或者建议 谢谢!

启动程序时 LANG 不同吧。

可以用 ENV 看下

/etc/environment 文件,添加这些条目:

ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/instantclient_11_2
TNS_ADMIN=/opt/oracle/network/admin
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
OCI_HOME=/opt/oracle/instantclient_11_2
OCI_LIB=/opt/oracle/instantclient_11_2
OCI_LIB_DIR=/opt/oracle/instantclient_11_2
OCI_INCLUDE_DIR=/opt/oracle/instantclient_11_2/sdk/include
NLS_LANG=AMERICAN_AMERICA.AL32UTF8

然后重启服务器(好像不重启通过命令也可以,不过从 windows 来的程序员,你懂得。。)

另外 Oracle Instant Client 只有在你需要连 Oracle 12c 的情况下采用 12.1,否则还是推荐 11.2,因为有一个很奇怪的 timezone 问题,instant client 只带一个 timezone 文件,然后 Oracle 版本不一样需要不一样的 timezone 文件。。

#3 楼 @ericguo 好的,谢谢,我去试试!

依旧不行啊!求建议!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号