gpt4 book ai didi

python - 内部服务器错误 500 - Python、CGI

转载 作者:行者123 更新时间:2023-11-28 19:27:24 24 4
gpt4 key购买 nike

我的 .py 文件在终端中执行正常,但在浏览器中出现此错误

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
...
...

这是 .py 文件:

#!/usr/bin/python
import cgi
import cgitb; cgitb.enable()
print "Content-Type: text/html\n\n" # HTML is following
print # blank line, end of headers

print "<TITLE>CGI script output</TITLE>"
print "<H1>This is my first CGI script</H1>"
print "Hello, world!"

我应该将其保存为 .cgi 文件吗?我试过同样的错误,我试过很多这样的文件,但都没有用,我确信 apache 服务器正在工作,因为有其他 .cgi 脚本从同一目录运行而没有问题。

我也试过: #!/usr/local/bin/python & #!/usr/bin/local/python

感谢任何帮助。

编辑错误日志输出:(2) No such file or directory: exec of '.../.../.../test.py' 失败脚本头过早结束:test.py

最佳答案

这是我之前写的一些东西。在对 Python CGI 进行故障排除时,这些是需要寻找的一些好东西。

有一些技巧可以让 Python 在 CGI 中工作。

Apache 设置:这可能是旧的

通过在配置中修改以下内容,将 python 添加为 CGI:

    Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .py
  1. 始终通过 Apache 浏览页面。请注意,通过浏览器查看文件系统中的文件适用于 html 页面上的大多数内容,但不适用于 CGI。要使脚本工作,它们必须通过 htdocs 文件系统打开。您浏览器的地址行应如下所示:

    \\127.0.0.1\index.html or
    \\localhost\index.html

    如果您通过文件系统打开文件,CGI 将无法工作。例如,如果这是在您浏览器的地址栏中:

    c:\Apache\htdocs\index.html (or some other example location)
  2. 将脚本行尾转换为 Unix 格式:大多数编辑器都有“显示行尾”的选项,然后是一个将 Unix 格式转换为 PC 格式的工具。您必须将行尾设置为 Unix 格式。

  3. 在 CGI 脚本的第一行声明 Python 解释器的路径:您必须将以下行之一作为 Python CGI 脚本的第一行:

    #!C:\Python25\Python.exe
    #!/usr/bin/python

    当您在 PC 上进行调试时使用最上面一行,而最下面一行用于诸如 1and1 之类的服务器。我保留如图所示的行,然后在它们在服务器上启动后通过删除第一行来编辑它们。

  4. 在打印任何其他输出之前打印指定 HTML 的内容类型:这可以简单地通过在脚本中很早的地方添加以下行来完成:

    print "Content-Type: text/html\n\n"

    请注意,需要 2 行结束。

  5. 设置 Python 脚本以提供调试信息:导入以下内容以获取详细的调试信息。

    import cgitb; cgitb.enable()

    如果 cgitb 不可用,另一种方法是执行以下操作:

    import sys
    sys.stderr = sys.stdout
  6. 在服务器上必须设置 python 脚本权限才能执行。上传文件后,请务必编辑第一行并设置文件执行权限。

查看是否可以直接命中python脚本。如果不能,请使用上述步骤 (2-6) 进行修复。然后当 Python 脚本运行时,调试 shtml。

关于python - 内部服务器错误 500 - Python、CGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com