Linux下配置Apache服务器运行Python script
这里不讲Apache和Python的安装。安装方式可以直接是apt-get install或者用新立得,或者去他们网站下载最新的自己进行编译安装。
安装好后,打开/etc/apache2/下的httpd.conf文件,输入“AddHandler cgi-script .cgi .py”。
跟在Windwos下配置一样,ExecCGI也是需要加入,否则一样会碰到Forbidden问题。解决办法是:
找到/etc/apache2/sites-available目录,或自己定义的目录,然后修改里面的default文件,找到
<Directory /var/www/> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
在Options FollowSymLinks MultiViews后面加上ExecCGI (或”+ExecCGI”都可)。
Windows下配置Apache以便在浏览器中运行Python script的CGI模式
在前面的我的一篇文章中 “Windows XP下的Python 首次安装配置和使用”谈到当想在Apache服务器下运行Python script的时候,发现Apache的mod_python版本还不支持Python 2.6更别说3.0.1了,只有2.5之下的,折腾着卸载和安装,最后还没搞定,就先搁一边了。
现在因为已经安装了2.6的Python,以及支持2.6的Eric4,就不想再重新安装2.5来继续配置Apache下mod_python了。
后来发现了一篇文章Running Python as CGI in Apache in Windows,讲述以CGI模式代替mod_python来运行python script。还有这篇Python for Windows。
做法是:
- 打开httpd.conf,找到”#ScriptInterpreterSource Registry“,移除前面的注释# (如果找不到这行,就自己添加进去)
- 找到“Options Indexes FollowSymLinks”这句,在后面加上”ExecCGI“。(那个”Indexes“最好也能去掉,因为如果不去掉的话,目录下面没有index.html这种文件,就会显示出目录列表下的所有文件,所以有安全漏洞问题。如果去掉Indexes,而且没有index.html文件的话,就会显示一个Forbidden页面)
- 找到”AddHandler cgi-script .cgi“,在后面加上 .py。如果没有这句,可以自己添加 “AddHandler cgi-script .py”
- 重新启动Apache即可 (有的时候restart会导致Apache死掉,所以碰到这种情况的人可以stop先再start)
然后创建一个test.py script,
print "Content-type: text/html" print "" print "<html><head></head><body>" print "Hello World" print "</body></html>"
注意第二句print “”不能少,如果没有这句,会引起一个 “500 Internal Server Error” 错误。
在浏览器中运行http://localhost/test.py,Hello World两个字被输出后表明运行正常。
另外,有些错误提示如下:
- 没有添加ScriptInterpreterSource Registry,会出现500 Internal Server Error错误。
- 没有添加ExecCGI,会出现403 Forbidden You don’t have permission to access /test.py on this server。
- 没有添加AddHandler cgi-script .py,那内容就会以text文本式样显示在浏览器中。
注:
- 添加ScriptInterpreterSource Registry的用意是让Windows用Registry来找到Python的安装地方。
- ExecCGI是让python script可以运行在任意目录下面,因为Apache默认是让cgi script运行在cgi-bin目录下。而我把test.py放到htdocs下运行就会出现403 Forbidden的问题。所以需要加上ExecCGI,这样就可以在htdocs下运行.py script了。但是ExceCGI会有安全漏洞的问题。用FastCGI会安全一些。但是前提是需要安装上FastCGI才可以。
- CGI模式比mod_python模式要慢。所以以后有机会在别的电脑上再试试mod_python模式吧。
Windows XP下的Python 首次安装配置和使用
Windows下的Python安装还是比较方便的,下载一个.exe文件,然后很快就可以安装好。
如果使用自身带的IDLE编辑器,直接就可以使用了。但它的方便对我来说仅限于此。(只是对我来说的)
看了好几个文章介绍不同的Python编辑器或IDE,一开始选择的是PythonWin(选择这个主要是因为当初在学校的时候老师教了点Python,用的就是这个,可惜当初没去学Python,一心钻研在PHP和其它东东上)
PythonWin的选择还要跟你安装的Python版本一样才可以,否则安装不了。(麻烦的开始,呵呵)
因为一开始我装的Python是最新的3.0.1,PythonWin没有这个版本的,有2.6和2.5的。。
只好卸载了Python3.0.1,然后重新下载2.6版,安装。再下载PythonWin2.6版的,安装。
不过PythonWin安装也是很简单,直接一路next就可以了。
安装好后,打开PythonWin,在提示符>>>后面输入print “Hello World”,然后回车,不出错误的话,下面就会显示出来Hello World。
或者新建一个script,选择File – New – Python Script,在script里输入 print “Hello World”,保存一下先,然后按F5运行,在刚开始的>>>提示符窗口中就会出现Hello World。(如果没有先保存,运行的时候会提示错误)
好,一个简单的Python环境就设好了,可以创建.py脚本了。
如果想在浏览器中运行.py脚本,需要配置一下Apache服务器来支持Python,需要mod_python插件。
当去Apache网站准备下载一个的时候,发现竟然没有支持2.6版本的。。。我晕。。只有2.5的,还是两年前做的。。
这个项目已经停止更新两年了么。。
没办法,重新卸载2.6的Python和PythonWin,然后再去下载2.5的,和mod_python,再重新进行安装。
不过在浏览器中打开.py的脚本的时候无法正常解析。
这个时候又卸载又安装的搞的头大,就没心情继续下去,准备暂时把这个缓一下,先把Python的教程读完再说。
