如何在服务器上运行python脚本?

问题描述

| 我有一个由Blueshot托管的服务器。我一直在使用php从iPhone获取发布变量...但是现在我不得不使用python从iPhone获取发布变量。我写了这样的东西
import cgi
import cgitb; cgitb.enable()  # for troubleshooting

print \"Content-type: text/html\"
print

print \"\"\"
<html>

<head><title>Sample CGI Script</title></head>

<body>

  <h3> Sample CGI Script </h3>
\"\"\"

form = cgi.FieldStorage()
message = form.getvalue(\"message\",\"(no message)\")

print \"\"\"

  <p>Previous message: %s</p>

  <p>form

  <form method=\"post\" action=\"index.cgi\">
    <p>message: <input type=\"text\" name=\"message\"/></p>
  </form>

</body>

</html>
\"\"\" % message
并上传到我的服务器,但是它不起作用...如果我导航到该页面,那么它将仅显示源代码。.我不知道服务器上是否安装了python(我相信python可能会默认安装)。如何检查服务器上的python是否可运行,如果没有,如何在服务器上运行python脚本?我要做的就是从iPhone获取POST变量(我知道如何从iPhone发送变量)预先感谢...     

解决方法

这是CGI脚本无法正常工作时要检查的一小部分清单: 它在
cgi-bin
(或同等的文件夹)中吗? 它可执行吗? 可读吗? 它有哈希吗? 您的服务器是否设置为处理CGI脚本? 这是可用于测试的示例CGI脚本:
#!/usr/bin/env python
import cgi; cgi.test()
将其命名为
test.py
,将其放在
cgi-bin
中的某个位置,并确保其可执行文件:
$ chmod a+rx test.py
某些Web服务器只能识别带有某些扩展名的CGI脚本,因此如果
.py
不起作用,则可能需要尝试
.cgi
。     ,这是一个网络服务器配置问题,而不是编程问题。 如果您正在运行Apache,则可能会起作用:
chmod 755 myscript.py
ln -s myscript.py myscript.cgi
然后将其放在您的.htaccess文件中:
AddHandler cgi-script .cgi
如果由于没有外壳程序访问权限而无法运行
ln
命令,则只需以.cgi扩展名开头即可。或者,如icktoofay所说,将其放在您的cgi-bin文件夹中,那么您也不需要.htaccess修改。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...