最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

ubuntu 12.04下3分钟搭建apache+python的运行环境

Python 8624浏览 3评论

关于搭建apache+python的运行环境,网上很多文章都是用cgi方式,配置非常繁琐,把很多不相干的东西都扯了进来,都没有说到要点上。对于很多新手朋友来说,估计摸不着南北。这里采用mod_python模块的方式,都是用apt-get安装,3分钟就搞定了。

1、安装apache

如果安装了apache,确保配置没有进行大幅的修改,否则可能会有影响。如果没有安装apache,通过apt-get安装:

$ sudo apt-get install apache2

Tips:如果是自行编译安装,下面提到的配置和目录根据实际情况修改。

2、安装mod_python模块

这个模块内嵌了python解释器,apache就可以通过该模块运行python脚本,然后将内容输出到浏览器。这个模块就像个桥一样,连接apache和python。安装也非常简单,apt-get直接安装:

$ sudo apt-get install libapache2-mod-python

安装完成后,查看/etc/apache2/mods-enabled/python.load,可以看到模块已经被加载进来了,完全不用自己手动添加。

$ less /etc/apache2/mods-enabled/python.load
LoadModule python_module /usr/lib/apache2/modules/mod_python.so

3、告诉apache在碰到py后缀的文件时用python执行

修改/etc/apache2/sites-enabled/000-default配置文件,找到如下配置:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
</Directory>

如果你的配置没有改动,看到的应该和上面一样。在Directory内增加三行配置,最终如下:

<Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        AddHandler mod_python .py
        PythonHandler test
        PythonDebug On
</Directory>

保存后,重新启动下apache:

$ sudo /etc/init.d/apache2 restart

至此环境就全部完成了,下面进行测试下。

测试

在站点根目录/var/www/下新建hello.py文件,内容如下:

from mod_python import apache
def handler(req):
    req.write("Hello World!")
    return apache.OK

确保该文件有执行权限,为了方便直接改成777:

$ chmod 777 hello.py

用浏览器访问下该文件:

http://localhost/hello.py

如果看到hello world!就表示成功了。

小结

如果碰到问题可以查下apache的日志文件,apache的日志文件再/var/log/apache2/目录下。关于mod_python的使用问题,可以到官网查阅相关手册。有什么问题可以联系我。

转载请注明:快乐编程 » ubuntu 12.04下3分钟搭建apache+python的运行环境

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 这个可以试试
    xiaomingtt5年前 (2013-01-20)回复
  2. Traceback (most recent call last):

    File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

    File "/usr/lib/python2.7/dist-packages/mod_python/importer.py", line 1206, in _process_target
    object = apache.resolve_object(module, object_str, arg, silent=silent)

    File "/usr/lib/python2.7/dist-packages/mod_python/apache.py", line 696, in resolve_object
    raise AttributeError, s

    AttributeError: module '/usr/lib/python2.7/test/__init__.py' contains no 'handler'


    出现了这个错误,是我本地的test库不全么?
    aigoz2年前 (2015-06-10)回复
    • 我也是这样,不知什么情况,用的树莓派
      wandeng1233个月前 (08-10)回复