开发者

Running a .py file on LAMP (CentOS) server - from a PHP developer's perspective

I'm a LAMP developer trying out Python for the first time.. I'm okay with picking up the syntax, but I can't figure out how to run it on the server! I've tried the following

  • uploading filename.py to a regular web/public directory. chmod 777, 711, 733, 773... (variations of execute)
  • putting the filename.py in cgi-bin, chmod same as above..

Typing up example.com/filename.py simply loads a textfile - nothing appears to have been compiled/parsed/etc!

开发者_如何学编程

(I believe python is installed, as whereis python on my server shows /usr/bin/python among several other directories)

Many words for a simple question - how do you run a python file on a CentOS server?


This is a big mental shift from PHP. Python files are not simply interpreted like .php files[1]. The simplest way I have found to get up & running with Python is the Bottle framework.

I recommend you spend a short while reading http://docs.python.org/howto/webservers.html. It's very informative.

[1]: Note: there is such a thing as Python Server Pages, but it's not widely used.


you can use cgi, but that will not have great performance as it starts a new process for each request.

More efficient alternatives are to use fastcgi or wsgi

A third option is to run a mini Python webserver and proxy the requests from apache using rewrite rules


I agree with the other comments that there may be more efficient ways to run a Python script. Here are some things to try if you'd just like to run a Python script by dropping it into the cgi-bin directory. You'll first want to locate your httpd.conf file. One way to do this is:

locate httpd.conf

Your httpd.conf file is probably located at /etc/httpd/conf/httpd.conf for CentOS. Edit the file and make sure Python files are recognized, especially if you will use them outside of the ScriptedAliased directories:

AddHandler cgi-script .cgi .py

Restart your Apache web-server:

apachectl restart

Create the following test.py file inside the /var/www/cgi-bin directory (default for CentOS):

#! /usr/bin/python
print "Content-type: text/html"
print ""
print "Hello, World!"

You'll want to make the file executable with:

chmod 775 test.py

That should be all that you'll need to do. You can now visit http://{your-domain}/cgi-bin/test.py and the resulting "Hello, World!" should appear.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜