sqtsqt 发表于 2018-11-22 07:50:52

linux下在Apache中配置python

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

第一步,配置apache
在httpd.conf中,找到:
AddHandler cgi-script .cgi把它改为:
AddHandler cgi-script .cgi .py  其他设置:


    AllowOverrideALL
    Options +ExecCGI
    Order allow,deny
    Allow from all
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
  看是否有这句,并且去掉注释。其他要更改的地方:
  
  SetHandler python-program
  PythonPath "sys.path+ ['/var/www/cgi-bin']"
  PythonHandlerhellox
  

    AddHandler mod_python .py
    PythonHandler hellox
    PythonDebug On
  把“/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  测试文件一定要按照下面的格式才行:
defhandler(req):
   .....
    return apache,OK  更改权限:chmod a+x/var/www/cgi-bin/hellox.py
  最后,在浏览器输入 http://192.168.111.50/cgi-bin/hellox.py,屏幕上出现“hello,world”。



页: [1]
查看完整版本: linux下在Apache中配置python