今天做项目的过程遇到一个坑,一部署到远程服务器就报 Apache 500: Premature end of script headers,服务器是 Apache+Passenger。本地开启生产跟开发环境都能够正常运行。最后排查后发现是 controller 文件里包含了中文,但是文件开头没有写明# encoding: utf-8
。最后加上 encoding 后重新部署就解决问题了。
为什么 Rails 没报异常,Apache 却报了呢?搜了很久都没有找到能够解释这个问题的帖子,哪位同学能够赐教一下?
我这边的情况是,如果代码里有中文,开发环境 webrick or thin 不加 utf8 直接就 500 了 不懂为何开发没问题,去了 apache 才有问题 = =