从PHP开发者的视角在LAMP(CentOS)服务器上运行.py文件
我是一名LAMP开发者,这次第一次尝试Python。我对语法还算能接受,但我就是搞不懂怎么在服务器上运行它!
- 我试着把
filename.py
上传到普通的网页/public目录,设置了权限chmod 777、711、733、773……(各种执行权限的组合) - 我把
filename.py
放到了cgi-bin目录,权限设置和上面一样……
当我输入example.com/filename.py
时,结果只是加载了一个文本文件——什么都没有被编译或解析出来!
(我相信Python是安装好的,因为在我的服务器上输入whereis python
显示了/usr/bin/python
,还有其他几个目录)
说了这么多,其实就是想问一个简单的问题——在CentOS服务器上怎么运行一个Python文件?
3 个回答
我同意其他评论的看法,运行Python脚本可能有更高效的方法。如果你想通过把Python脚本放到cgi-bin目录来运行,可以试试以下步骤。首先,你需要找到你的httpd.conf文件。找到这个文件的一种方法是:
locate httpd.conf
在CentOS系统中,你的httpd.conf文件通常位于 /etc/httpd/conf/httpd.conf。编辑这个文件,确保Python文件能够被识别,特别是如果你打算在ScriptedAliased目录之外使用它们的话:
AddHandler cgi-script .cgi .py
接下来,重启你的Apache网页服务器:
apachectl restart
然后在 /var/www/cgi-bin 目录下创建一个名为 test.py 的文件(这是CentOS的默认位置):
#! /usr/bin/python
print "Content-type: text/html"
print ""
print "Hello, World!"
你还需要让这个文件可以执行,方法是:
chmod 775 test.py
完成这些步骤后,你就可以访问 http://{你的域名}/cgi-bin/test.py,应该会看到“Hello, World!”的结果。
你可以使用cgi,但这样做性能不太好,因为每次请求都会启动一个新的进程。
更有效的选择是使用fastcgi或wsgi。
还有一个方法是运行一个小型的Python网络服务器,然后通过重写规则让apache转发请求。
这跟PHP的思维方式差别很大。Python文件不像.php文件那样简单地被解释执行。对我来说,快速上手Python的最简单方法就是使用Bottle这个框架。
我建议你花点时间看看http://docs.python.org/howto/webservers.html。这篇文章信息量很大,值得一读。
[1]: 注意:确实有一种叫做Python Server Pages的东西,但它并不常用。