我有一个Web服务器,我的cgi-bin在0755上,我的脚本名为return.py也是0755.当我的脚本只是这个时
#!/usr/bin/perl
import cgi
import json
print "Content-type: text/plain\n\n";
print "testing...\n";
然后我转到我看到测试的网页......我应该这样做,但是当我将任何内容添加到我的脚本中时
form = cgi.FieldStorage()
param = form.getvalue("param")
if param:
json.dumps({'success': True, 'message': param })
else:
json.dumps({'success': False, 'message': 'did not receive parameter' })
我收到500内部服务器错误,我不知道为什么,我有正确的权限设置,并且python正在运行,因为它在我不添加上述内容时有效吗?我上面的代码有问题吗?还有什么可能导致这个问题?
通过这种方式,上面的代码是因为我正在对此进行POST以及返回发布值的内容。只是一个简单的测试用例,但我无法使用它?
我已经查看了这个检查清单,我可以查看的内容,这一切都有效https://encodable.com/internal_server_error/
提前感谢您的帮助。 :)
修改
这里是错误日志
[Tue Jun 23 01:35:38.661161 2015] [authz_core:error] [pid 874653] [client 173.34------:51484] AH01630: client denied by server configuration: /home/spencer/public_html/.htaccess
[Tue Jun 23 01:35:38.426745 2015] [access_compat:error] [pid 874653] [client 173.34-----:51484] AH01797: client denied by server configuration: /home/spencer/public_html/error_log
答案 0 :(得分:1)
只需更改shebang即可正常工作
#!/usr/bin/perl
import cgi
import json
print "Content-type: text/plain\n\n";
print "testing...\n";
并假设您将其保存为test.py工作 然后你添加下面的部分
#!/usr/bin/perl
import cgi
import json
print "Content-type: text/plain\n\n";
print "testing...\n";
form = cgi.FieldStorage()
param = form.getvalue("param")
if param:
json.dumps({'success': True, 'message': param })
else:
json.dumps({'success': False, 'message': 'did not receive parameter' })
它会出现服务器错误
然后将shebang改为
#!/usr/bin/python
它有效.....正确的shebang和生活很容易