【问题标题】:Problems moving Django App to Production将 Django 应用程序迁移到生产环境时出现问题
【发布时间】:2015-07-27 03:11:43
【问题描述】:

将我的 Django 应用程序从开发服务器移动到生产服务器 (Apache) 时,我遇到了两个问题。我假设两者都可能与我的 Apache 配置有关。任何帮助都会很棒。

(1) 我正在使用带有 yawd-elfinder 连接器的基于 jQuery 的 Elfinder 文件浏览器。在开发服务器上我可以浏览带有中文字符的文件就好了,但是在 Apache 服务器上 Elfinder 给了我一个错误:

无法打开“文件夹名称”。 ascii File_name_with_chinese_ characters.doc 序数不在范围内(128)

我确保 Apache 配置选择了 UTF-8 字符集。 here 的帖子说类似的事情可能是由语言环境问题引起的……但我不确定如何解决这类问题。有什么想法/建议吗? (你会在其中看到对 yawd-elfinder 的引用……我的版本有那个补丁)

(2) 我正在使用 Haystack + Solr 进行搜索。仅当我将 127.0.0.1 更改为机器的 IP 时,搜索才有效。

HAYSTACK_CONNECTIONS = {
'default': {
    'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
    'URL': 'http://127.0.0.1:8983/solr/test_core_django2'
},

在开发服务器上它与 127.0.0.1 一样好。这个问题没有我找到解决方法那么大,但对我来说有点困惑

【问题讨论】:

  • 1. ssh 进入你的终端并运行 locale 2. 在你的终端中运行 django shell ./manage.py shell 然后运行 ​​import locale locale.getlocale() locale.getdefaultlocale()
  • 感谢您让我走上正轨!

标签: python django apache solr django-haystack


【解决方案1】:

如果其他人遇到同样的问题,我发现 Apache 覆盖了区域设置。感谢上面的 luke_aus,我在 Apache 和 dev 上都打印了语言环境设置... Apache/mod_wsgi 实例输出为 ascii。

此链接介绍了如何修复它:

http://blog.dscpl.com.au/2014/09/setting-lang-and-lcall-when-using.html

具体来说:

WSGIDaemonProcess my-django-site lang='en_US.UTF-8' locale='en_US.UTF-8'

请注意,这仅在您以守护程序模式运行 wsgi 时有效。

【讨论】:

  • Apache 没有覆盖它们。只是Apache没有设置任何东西。因此,如果未设置任何内容,您将继承操作系统的默认值,通常是 ASCII。
  • 感谢您的澄清,以及文章本身! AddDefaultCharSet 指令究竟做了什么?我这里默认使用 UTF-8,并认为它可以解决我遇到的问题。
  • AddDefaultCharSet 指令与 Apache 本身返回的静态文件响应相关。与在 mod_wsgi 下运行的代码的语言环境无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多