将 Django 应用程序移至生产环境时出现问题

Problems moving Django App to Production

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

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

Unable to open "Folder_Name". ascii File_name_with_chinese_ characters.doc ordinal not in range(128)

我确保 Apache 配置选择了 UTF-8 字符集。 post here 说类似的事情可能是由语言环境问题引起的……但我不太确定如何解决这类问题。有 ideas/suggestions 吗? (你会在那里看到一个专门针对 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 没问题。这个问题不像我找到的解决方法那么大,但它让我有点困惑

为了防止其他人遇到同样的问题,我发现 Apache 覆盖了语言环境设置。多亏了上面的 luke_aus,我在 Apache 和 dev 上打印了语言环境设置... Apache/mod_wsgi 实例输出为 ascii。

这篇 link 介绍了如何修复它:

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 处于守护进程模式时才有效。