ubuntu 6.06 下有没有配置成Mod_python阿?

软件和网站开发以及相关技术探讨
回复
yeqiwei
帖子: 5
注册时间: 2006-08-07 8:48

ubuntu 6.06 下有没有配置成Mod_python阿?

#1

帖子 yeqiwei » 2006-08-08 16:28

我死活搞不定!
Apache 版本是1.3.34, mod_python is 2.7.10(用的是libapache-mod-python2.4包)
python 2.4.3
这些都是通过apt-get 来安装的。

web root 是在 /var/www.
我建立了 一个 test目录

在http.conf 配置如下:

<Directory /var/www/test>
AddHandler python-program .py
PythonHandler mptest
PythonDebug On
</Directory>

在 modules.conf 配置文件中,
已经有
LoadModule python_module /usr/lib/apache/1.3/mod_python


然后我建立mptest.py文件,
内容如下:

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

浏览 http://127.0.0.l/test/mptest.py, 得到服务器内部错误!
日志如下:
make_obcallback():could not import mod_python.apache
make_obcallback():could not call init
........python_handler: make_obcallback returned no obCallBack!


我的系统是安装了python2.3 和python2.4,但python指向了python2.4
我直接运行 mptest.py,输出如下:

Traceback (most recent call last)
File "/var/www/test/mptest.py",line 1, in ?
from mod_python import apache
File "/usr/lib/python2.4/site-packages/mod_python/apache.py",line 55 in ?
import _apache
ImportError: No module named _apache

有人遇到想到的问题吗?
头像
oneleaf
论坛管理员
帖子: 10454
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#2

帖子 oneleaf » 2006-08-08 19:07

使用apache2和libapache2-mod-python,我试过没有问题.
yeqiwei
帖子: 5
注册时间: 2006-08-07 8:48

#3

帖子 yeqiwei » 2006-08-09 0:38

发现一个Bug:
如果 采用 Apache 版本是1.3.34, mod_python is 2.7.10(用的是libapache-mod-python2.4包)和python 2.4.3
那么mod_python无法配置成功。
可能的原因 mod_python/2.7.10 对应的是 Python/2.4.1a0 (从apache的error.log看到的)
而ubunut 6.06中默认的python 2.4 是 2.4.3!

我下午后来卸载了libapache-mod-python2.4,安装libapache-mod-python2.3,配置没有改变,
mod_python可以正确的run起来!
zscao
帖子: 48
注册时间: 2005-12-07 10:32

#4

帖子 zscao » 2007-06-19 18:12

这个例子可能有其他问题!我是折腾了一天,用浏览器访问.py文件时就是坚持要我保存。无奈之下按它的要求做了,打开保存的文件时,理所当然地认为应该是源文件,可万万没有想到的是打开保存的文件一看,原来已经是执行的结果了!

可怜我先装apache 1.3,配置了半天不成,看到ye兄的说法后毅然删除了apache1.3,安装apache2,然后又是折腾了半天,结果都是一样的,浏览器固执地要求我保存文件。没想到最后的一个无奈举动反而解决了问题!

分析了一下,觉得是这个例子中返回的结果仅仅是一个包含了字符串"hello,world"的文本,而不包含其他html元素,因此像firefox这样的浏览器认为是一个不可识别的类型,因此要求保存。我想IE可能就不存在这个问题(当然仅是猜想,因为我是在Ubuntu下做的试验,没有在Windows下做。

所以建议遇到类似问题的朋友先看看返回的文件内容,如果确实是源文件,那可能是配置的问题。如果已经是执行结果了,那就是其他问题了。

解决这个问题的方法很简单,在输出"hello,world“之间设置一下返回文件类型即可:
req.content_type = 'text/plain'
liugehao
帖子: 61
注册时间: 2006-12-21 11:47

Re: ubuntu 6.06 下有没有配置成Mod_python阿?

#5

帖子 liugehao » 2008-03-21 12:45

网上找了2次答案 ,间隔一年,都没解决,
刚才 建立一个mptest.py的文件就可以了,再运行其它的.py文件也都正常

设定路径试试

<VirtualHost fc.com>
DocumentRoot /usr/www/www.fca.com

<Directory "/usr/www/www.fca.com">
AllowOverride FileInfo
AddHandler mod_python .py
PythonPath "['/usr/www/www.fca.com'] + sys.path"

PythonHandler mptest
PythonDebug On


allow from all
Options +Indexes
</Directory>
</VirtualHost>
回复