首页 > 代码库 > linux下在Apache中配置python

linux下在Apache中配置python

如果想要Apache可以执行python之类的网页程序,那么就得安装一些额外的模块,python程序安装的模块为mod_python install -y  mod_python进行安装

第一步,配置apache

在httpd.conf中,找到:

AddHandler cgi-script .cgi

把它改为:

AddHandler cgi-script .cgi .py

其他设置:

<Directory "/var/www/cgi-bin">
    AllowOverride  ALL
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
ScriptAlias /cgi-bin/  /var/www/cgi-bin/

“/var/www/cgi-bin”是你放置python程序的地方,可以改成你自己的目录,重要的是那个“+ExeCGI”,它的意思让此目录具有执行CGI的权限


第二步,配置mod_python

mod_python安装好后,默认有个配置文件:/etc/httpd/conf.d/python.conf,这个文件在apache重启时会自动读入

要注意的是:

LoadModule python_module modules/mod_python.so

看是否有这句,并且去掉注释。其他要更改的地方:

<Location /var/www/cgi-bin>

    SetHandler python-program

    PythonPath "sys.path+ [‘/var/www/cgi-bin‘]"

    PythonHandler  hellox

</Location>

<Directory /var/www/cgi-bin>
    AddHandler mod_python .py
    PythonHandler hellox
    PythonDebug On
</Directory>

 把“/var/www/cgi-bin"/ 改为你自己房子python程序的目录。其中,第一条指令是将所有URL末尾为.py的请求转发给mod_python处理程序,mod_python接收到请求之后再寻找适当的PythonHandler处理程序,这里是python文件的名字。第二条指令只定义了一个hellox处理程序,注意这个程序名不要跟系统已有的程序名字一样。最后一条是启用Python代码调试功能,以便在代码运行出错时输出Python解释器返回的错误。

第三部,编写python文件进行测试

我编写的hellox.py:

#!/usr/bin/python2
from mod_python import apache 
def handler(req): 
    req.content_type = ‘text/plain‘ 
    req.write("Hello World!") 
    return apache.OK

测试文件一定要按照下面的格式才行:

def  handler(req):
     .....
    return apache,OK

更改权限:chmod a+x  /var/www/cgi-bin/hellox.py

最后,在浏览器输入 http://192.168.111.50/cgi-bin/hellox.py,屏幕上出现“hello,world”。

linux下在Apache中配置python