将Django应用程序从开发服务器移动到生产服务器(Apache)时,我遇到了两个问题。我假设两者都可能与我的Apache配置有关。任何帮助都会很棒。
(1)我使用基于jQuery的Elfinder文件浏览器和yawd-elfinder连接器。在开发服务器上,我可以浏览带有中文字符的文件,但是在Apache服务器上,Elfinder给了我一个错误:
无法打开" Folder_Name"。 ascii File_name_with_chinese_ characters.doc ordinal不在范围内(128)
我确保Apache配置选择了UTF-8 CharacterSet。帖子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。这个问题不像我找到一个解决方法那么大,但对我来说有点混乱
答案 0 :(得分:0)
如果其他人遇到同样的问题,我发现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的情况。