首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache -> Ruby语言环境

Apache -> Ruby语言环境
EN

Stack Overflow用户
提问于 2017-09-23 05:48:41
回答 1查看 96关注 0票数 0

我有以下代码检查读取文件的默认编码(我在Linux,ubuntu16 x64上),只是为了测试:

代码语言:javascript
复制
File.read("/bin/ls").encoding

如果Apache通过FastCGI调用我的代码,那么输出就是US_ASCII (C语言环境),但是如果我从系统中的任何地方手动运行我的代码,我就会得到en_US.UTF-8编码。

更改/etc/apache2/envvars中的LANG env变量不会产生任何影响。更改/etc/init.d/apache2中的ENV配置也不会(当然是在服务重新启动之后)。/etc/default/locale设置为en_US.UTF-8。在我的conf文件中使用虚拟主机并添加默认字符集也没有任何帮助。

从Apache调用时检查ENV数组几乎是空的(只设置了PATH变量),而手动运行时检查它充满了LANG等变量。因此,这显然是一个环境设置问题。

我在我的项目中使用了一个外部GEM,当它在非unicode环境中运行时有一个bug。我可以手动修补它,但这不是一个好的解决方案,因为更新会覆盖它。

如何让Apache在unicode环境中运行我调用的代码?

EN

回答 1

Stack Overflow用户

发布于 2017-09-25 16:17:36

解决方案是:https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidinitialenv

代码语言:javascript
复制
    edit /etc/apache2/mods-available/fcgid.conf
    FcgidInitialEnv LC_ALL en_US.UTF-8

    service apache2 restart
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46373666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档