【问题标题】:Deploying Python app on cPanel via CGI - SuExec & 500 error通过 CGI 在 cPanel 上部署 Python 应用程序 - SuExec & 500 错误
【发布时间】:2017-06-12 20:07:48
【问题描述】:

我有以下启动 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 访问权限。

【问题讨论】:

  • /home/xxx/public_html/cgi-bin/app.cgi 有问题。如果文件存在,那么它可能有权限问题 - Apache 主要以用户 www-datawww-data 身份运行,可能无法访问您的文件夹/文件。
  • 我正在使用suexec,所以应该没问题
  • 问题 #1 是我的 CGI 脚本有 Windows 行结尾。现在我收到(13)Permission denied: exec failed (app.cgi)

标签: python apache flask cgi suexec


【解决方案1】:

两个问题:

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

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

【讨论】:

  • 我的天啊,在我部署一个更大的实现之前,我用完全相同的 CGI 脚本运行了一个演示烧瓶应用程序,因此我已经把头撞在墙上好几个小时了。但我想,好吧,我会试一试,它奏效了。不知道为什么它在更改应用程序的其余部分之前起作用,但在更改应用程序的其余部分之后却不起作用,但这修复了它。
猜你喜欢
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 2021-03-16
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多