Python 为什么我会收到500内部服务器错误消息?

Python 为什么我会收到500内部服务器错误消息?,python,python-3.x,Python,Python 3.x,我是python、CGI和HTML的新手 我目前的项目是编写一个Ubuntu web服务器。我的一些基本表单是功能性的,但其他脚本会在我的web浏览器中显示“内部服务器错误”消息 以下直接从中删除的python脚本应该重复您在下拉菜单中选择的选项,但我收到的是“Internal Server Error”(内部服务器错误)消息: 名为“dropdown.HTML”的HTML文件存储在/var/www/HTML <form action = "/cgi-bin/dropdown.p

我是python、CGI和HTML的新手

我目前的项目是编写一个Ubuntu web服务器。我的一些基本表单是功能性的,但其他脚本会在我的web浏览器中显示“内部服务器错误”消息

以下直接从中删除的python脚本应该重复您在下拉菜单中选择的选项,但我收到的是“Internal Server Error”(内部服务器错误)消息:

名为“dropdown.HTML”的HTML文件存储在
/var/www/HTML

<form action = "/cgi-bin/dropdown.py" method = "post" target = "_blank">
<select name = "dropdown">
<option value = "Maths" selected>Maths</option>
<option value = "Physics">Physics</option>
</select>
<input type = "submit" value = "Submit"/>
</form>

数学
物理
名为“dropdown.py”的Python文件存储在/usr/lib/cgi-bin中

#!/usr/bin/python

# Import modules for CGI handling 
import cgi, cgitb 

# Create instance of FieldStorage 
form = cgi.FieldStorage() 

# Get data from fields
if form.getvalue('dropdown'):
   subject = form.getvalue('dropdown')
else:
   subject = "Not entered"

print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Dropdown Box - Sixth CGI Program</title>"
print "</head>"
print "<body>"
print "<h2> Selected Subject is %s</h2>" % subject
print "</body>"
print "</html>"
#/usr/bin/python
#导入用于CGI处理的模块
导入cgi,cgitb
#创建FieldStorage的实例
form=cgi.FieldStorage()
#从字段中获取数据
如果form.getvalue('dropdown'):
subject=form.getvalue('下拉列表')
其他:
主题=“未输入”
打印“内容类型:text/html\r\n\r\n”
打印“”
打印“”
打印“下拉框-第六个CGI程序”
打印“”
打印“”
打印“所选主题为%s”%Subject
打印“”
打印“”
我的
/var/log/apache2/error.log
报告内容如下:

[日期][cgi:error][pid123:tid 123456789][cgid:error](2)没有这样的文件或目录:AH01241:exec of'/usr/lib/cgi-bin/dropdown.py'失败

[日期][cgi:error][pid123:tid 123456789][client 192.168.xxx.xxx:57102]在headers之前结束脚本输出:dropdown.py,referer:

知道我应该在哪里修复这个500内部服务器错误吗


谢谢。

仔细查看错误消息:
/us/lib/cgi-bin/dropdown.py
为什么/us/?你在某处输入了一个错误。

似乎更可能是
/usr/lib
(注意
r
)而不是
/us/lib
(no
r
)。如果是我的键盘,那么输入应该是
/sr/
,因为字母“u”会因为某种原因粘在一起:)谢谢你的回复。这是我在重新创建error.log时的一个输入错误。错误long条目实际上读取了/usr/libWell,看起来apache仍然找不到dropdown.py。如果您以root用户身份执行:
su-apache-c/usr/lib/cgi-bin/dropdown.py
,您应该仔细检查
/usr/lib/cgi-bin/dropdown.py
是否确实存在。我无法让
apache
工作,但我确实执行了
apache2-c/usr/lib/cgi-bin/dropdown.py
It输出:[Sun Nov 03:38:28.620247 2018][core:warn][pid 40157]AH00111:Config变量${APACHE_RUN_DIR}未定义apache2:/etc/apache2/apache2.conf第80行的语法错误:DefaultRuntimeDir必须是有效的绝对或相对于ServerRoot的目录