2

我有以下启动 Flask Web 应用程序的 CGI 脚本。然而我得到的只是一个500 Internal Server Error

#!/home/xxx/public_html/cgi-bin/venv/bin/python
import site
site.addsitedir("/home/xxx/public_html/cgi-bin/venv/lib/python2.7/site-packages")

from wsgiref.handlers import CGIHandler
from app import app

CGIHandler().run(app)

我在 Apache 中收到以下错误error_log

[Fri Jan 27 09:53:18.052981 2017] [cgi:error] [pid 20660] [client aa.bb.cc.dd:58331] AH01215: suexec policy violation: see suexec log for more details: /home/xxx/public_html/cgi-bin/app.cgi, referer: http://xxx.io/

[Fri Jan 27 09:53:18.053176 2017] [cgi:error] [pid 20660] [client aa.bb.cc.dd:58331] End of script output before headers: app.cgi, referer: http://xxx.io/

并出现以下错误suexec_log

[2017-01-27 09:53:18]: uid: (522/xxx) gid: (534/xxx) cmd: app.cgi

[2017-01-27 09:53:18]: (2)No such file or directory: exec failed (app.cgi)

所有文件都应该在所有正确的位置。不知道如何继续调试。如果有帮助,我确实拥有此服务器的 root 访问权限。

4

1 回答 1

3

两个问题:

  1. .cgi文件包含 Windows 行尾
    • :set ff=unix在 Vim 中解决
  2. 我的 virtualenv 中的 python 解释器未设置为可执行文件

一旦我解决了这些,它就像一个魅力!

于 2017-01-28T04:54:43.090 回答