- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 .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
始终通过 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)
将脚本行尾转换为 Unix 格式:大多数编辑器都有“显示行尾”的选项,然后是一个将 Unix 格式转换为 PC 格式的工具。您必须将行尾设置为 Unix 格式。
在 CGI 脚本的第一行声明 Python 解释器的路径:您必须将以下行之一作为 Python CGI 脚本的第一行:
#!C:\Python25\Python.exe
#!/usr/bin/python
当您在 PC 上进行调试时使用最上面一行,而最下面一行用于诸如 1and1 之类的服务器。我保留如图所示的行,然后在它们在服务器上启动后通过删除第一行来编辑它们。
在打印任何其他输出之前打印指定 HTML 的内容类型:这可以简单地通过在脚本中很早的地方添加以下行来完成:
print "Content-Type: text/html\n\n"
请注意,需要 2 行结束。
设置 Python 脚本以提供调试信息:导入以下内容以获取详细的调试信息。
import cgitb; cgitb.enable()
如果 cgitb 不可用,另一种方法是执行以下操作:
import sys
sys.stderr = sys.stdout
在服务器上必须设置 python 脚本权限才能执行。上传文件后,请务必编辑第一行并设置文件执行权限。
查看是否可以直接命中python脚本。如果不能,请使用上述步骤 (2-6) 进行修复。然后当 Python 脚本运行时,调试 shtml。
关于python - 内部服务器错误 500 - Python、CGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6762090/
嗨,我是一名学生,正在实习。不幸的是,我的公司要我用 C 编写 CGI 程序。我不知道他们为什么要使用它。无论如何,我必须在接下来的 2 个月内学习并应用它。我如何以及如何学习 CGI 编程。我有 2
CGI 脚本应该可以访问由 Web 服务器设置的环境变量列表。他们的名字是什么? 最佳答案 有关 CGI 规范,请参阅 RFC 3875,其中包含您需要的所有信息。 :-) 来自 RFC: met
CGI 是通用网关接口(interface)。顾名思义,它是所有事物的“通用”网关接口(interface)。从名字上看,它是如此琐碎和幼稚。我觉得我明白了这一点,每次遇到这个词都有这样的感觉。但坦白
我试图在 uhttpd 服务器 上执行 Cgi-Cpp 程序,该服务器运行 OpenWRT 安装。 Cgi 文件是 /www/cgi-bin/sample.cgi 并且也有执行权限。我正在尝试使用 H
我在目录下有一个 cpanel 帐户: /home/username/ 和一个文件: /home/username/public_html/ 这是index.php 其中包含:
我正在尝试修改我的 EasyPHP 以在 CGI 模式下运行。 根据此链接:http://www.easyvitools.com/phpserial/php_ser_reference.html我必须
有没有办法阻止 lighttpd 将 POST 缓冲到 CGI 可执行文件? 在我看来,所有请求在转发到 CGI 可执行文件之前都已完全缓冲在磁盘上,这使我无法以基于流的方式处理输入。 澄清一下,我只
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
这个问题在这里已经有了答案: Why does my system call to another CGI script work on the command line but not when
我正在设计一个应用程序,它将由 3-4 个服务组成,这些服务作为单独的进程运行并通过合适的 IPC 链接。该系统将有一个网络界面,我想使用那里的任何网络服务器。 应该在某个 URL 下访问 Web 界
这更多是为了理解 web 应用程序中的请求-响应机制。客户端向 Web 应用程序发送请求 (GET/POST)。 Web 应用程序有一个正在运行的应用程序服务器,该服务器用作应用程序特定程序的容器。我
这个问题在这里已经有了答案: Why does my system call to another CGI script work on the command line but not when
我遇到了这个问题:当我访问 URL“bobbabr.org”时,这是正常的,但是当我访问子域“ibobba.bobbabr.org”时,我被重定向到“/cgi-sys/defaultwebpage.c
我在虚拟机上运行的 Win 2k8 R2 上安装了 Mercurial 1.8.1、Python 2.6.6。我试过从 msi、源和使用 tortisehg 安装。命令行 Hg 工作正常,但在运行 h
我正在使用 cgi-bin 并显示一张 map ,其中包含来自 Postgres 数据库的一些数据。 但是,我需要引入一个输入,用户可以在其中选择一个日期,这个日期将从数据库中过滤结果。 我有输入并通
我目前正在尝试为我在带有 Ubuntu 的虚拟机上运行的实际本地网页创建一个简单的登录页面。 我创建了 LoginPage.html在位置 /var/www/html . 然后 HTML 文件调用 l
有谁知道如何配置 lighttpd 来处理普通的 CGI 可执行文件,在这种情况下是用 C 编写的?我已经编译了一个测试程序(test.cgi)并将它放在$HOME/public_html/cgi-b
我有一个 scriptA.cgi,它调用 scriptB.cgi。 scriptB.cgi 需要一个参数。 我都试过了在我尝试过的 scriptA.cgi 中: `perl -l scriptB.cg
我正在尝试让 Python、cgi 模块、ajax/javascript 组合工作。由于我的服务器访问的性质(基本上是租用的网站空间),我无法安装 django 或任何其他网络框架之类的东西。我现在坚
我在 Ubuntu 服务器上安装了标准的 Apache2。默认设置使用 ScriptAlias 将 /cgi-bin/ 引用到 /usr/lib/cgi-bin/。如果我将 Python CGI 脚本
我是一名优秀的程序员,十分优秀!