简体   繁体   中英

How to run python script on my server?

I have a server hosting by Blueshot. I have been using php to get post variables from iPhone... But now I have to use python to get post variable from iPhone. I wrote something like this

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

And uploaded to my server but it doesn't work...If I navigate to the page then it just shows the source code.. I don't know whether or not python is installed on my server (I believe python might be installed as default)..How do I check if python is runnable on my server and if not how can I run python scripts on my server? All I want to do is to get POST variables from iPhone (I know how to send the variables from iPhone) Thanks in advance...

Here's a small checklist of things to check when CGI scripts aren't working:

  • Is it in a cgi-bin (or equivalent) folder?
  • Is it executable?
  • Is it readable?
  • Does it have a hashbang?
  • Is your server set up to process CGI scripts?

Here's a sample CGI script you can use for testing:

#!/usr/bin/env python
import cgi; cgi.test()

Name it test.py , put it somewhere in cgi-bin , and make sure it's executable:

$ chmod a+rx test.py

Some web servers only recognize CGI scripts with certain extensions, so if .py doesn't work, you may want to try .cgi .

This is a webserver configuration problem not a programming issue.

If you're running Apache, this might work:


chmod 755 myscript.py
ln -s myscript.py myscript.cgi

Then put this in your .htaccess file:


AddHandler cgi-script .cgi

If you can't run the ln command because of no shell access, just upload with the .cgi extension to begin with. Or, as icktoofay said, put it in your cgi-bin folder, then you won't need the .htaccess modification either.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM