让apache支持 mod_wsgi

想法很简单,就是让apache支持python,我搭配的环境:


$ uname -a
Linux kubt 3.2.0-27-generic-pae #43-Ubuntu SMP Fri Jul 6 15:06:05 UTC 2012 i686 athlon i386 GNU/Linux
$ python --version
Python 2.7.3
$ apache2 -version
Server version: Apache/2.2.22 (Ubuntu)
Server built:   Nov  8 2012 21:37:45

1, 下载  http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-3.4.tar.gz

2,解压后运行:

      

$./configure

      此处需要apache2-dev包,如果没有,将会有错误:
    

checking for apxs2... no
checking for apxs... no
checking Apache version... ./configure: line 1704: apxs: command not found

     安装 apache2-dev包(有些系统叫"apache2-worker-dev" 或 "apache2-prefork-dev“,我的ubuntu叫"apache2-threaded-dev"):

$ sudo apt-get install apache2-threaded-dev

    据说还需要python-dev包,不过我的系统好像已经装过了,这些依赖项准备好之后:

 

sudo make
sudo make install

接着需要对apache进行配置:

在目录 /etc/apache2/mods-available下创建文件:wsgi.load

里面的内容是:

LoadModule wsgi_module  /usr/lib/apache2/modules/mod_wsgi.so

在目录 /etc/apache2/mods-available下创建文件:wsgi.conf

里面的内容是:

#注意这里是 mod_wsgi.c
<IfModule mod_wsgi.c> 
        WSGIScriptAlias /lab/py/ /usr/local/cgi-bin/pyscript/
        <Directory /usr/local/cgi-bin/pyscript>
        Order allow,deny
        Allow from all
        </Directory>
        AddType text/html .py

</IfModule>


注意这里的/usr/local/cgi-bin/pyscript/ 是用来放你的python脚本的实际地址,而/lab/py/是别名,这两个可以根据你自己的实际情况自己更改,
这里是通过 localhost/lab/py/xxx.py 来访问 实际上的/usr/local/cgi-bin/pyscript/xxx.py
这样脚本必须放在/usr/local/cgi-bin/pyscript/这个目录才能正确执行。



然后把  /etc/apache2/mods-available 下的这两个文件软链接到 /etc/apache2/mods-enabled:

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/wsgi.load  wsgi.load
sudo ln -s ../mods-available/wsgi.conf wsgi.conf
sudo chmod u=rwx,og=rwx wsgi.* 




重启apache:
$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2  
... waiting         [ OK ]



然后你可以在
/usr/local/cgi-bin/pyscript/
建立一个test.py:
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 



def application(environ, start_response): 
    status = '200 OK' 
    content_type = 'text/html' 
 
    output = ['Hello python!'] 
 
    response_headers = [('Content-type', content_type)] 
    start_response(status, response_headers)
	
    return output 



给予test.py执行的权限,然后在浏览器输入:
http://localhost/lab/py/test.py


测试一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值