【问题标题】:How can I troubleshoot my Python CGI script?如何对我的 Python CGI 脚本进行故障排除?
【发布时间】:2015-10-20 16:18:08
【问题描述】:

我的 Python CGI webapp 无法正常工作,我不知道如何开始缩小问题范围。我能做什么?


注意我非常感谢this same question for Perl 的回答,我希望我有一个用于 Python 的答案。有些事情相似,但大多数情况不同。这是我提出问题的模板,所以如果您觉得应该以不同的方式提出问题,请随时编辑。

【问题讨论】:

  • 您检查过服务器的错误日志吗?
  • 这正是答案中的那种步骤(等等)。另外,我不知道该怎么做(顺便说一句,没有管理员权限)。
  • @JPeroutek 通常,服务器错误日志本身不足以真正了解手头的问题是什么。给定例如[Mon Sep 25 12:17:48.291168 2017] [http:error] [pid 12] [client 172.20.0.1:53312] AH02429: Response header name '<!--' contains invalid characters, aborting request, referer: http://localhost:8080/statistics/index.html 很容易理解 something 是错的,但很难理解到底是什么。因此,感谢长者的中肯建议。

标签: python cgi


【解决方案1】:
  1. 检查服务器的错误日志。例如,在 Apache 上,路径可能是 /var/log/apache/error.log/var/log/httpd/error_log

  2. 确保您的脚本是可执行的 (chmod +x script.py)。

  3. 确保您的脚本有一个 she-bang 行 (#!/usr/bin/env python)。

  4. 某些配置只允许在 /cgi-bin/ 目录中执行 CGI 脚本,您可以通过查看服务器的配置来确认,或者只是尝试将您的脚本移动到该目录中。

    李>
  5. 尝试从命令行 (./script.py) 运行您的脚本。它应该打印一些内容并成功退出(如果您的脚本依赖于它们,您可能需要设置一些 CGI 环境变量)。

  6. 用只打印"Content-Type: text/plain\n\nHello world" 的最小脚本替换您的脚本。这应该会告诉您 CGI 是否在服务器上正常工作。

  7. import cgitb; cgitb.enable() 放在文件顶部(shebang 行下方的第一行)以捕获任何错误并向您显示回溯。解决问题后应将其关闭,因为公开此信息可能会带来安全风险。

如果您无权访问日志,那么您将需要向服务器管理员寻求帮助、提交支持票证等。如果您发布您正在运行的 Web 服务器、Web服务器配置是什么样的,哪个 python 版本,你的 CGI 脚本是什么样的,等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多