apache利用mod_python整合
安装所需要的源码包:
• Apache 2.2.22 (Http://labs.mop.com/apache-mirror//httpd/httpd-2.2.22.tar.gz)
• python 2.7.3 (http://www.Python.org/ftp/python/2.7.3/Python-2.7.3.tgz)
• Mod_python 3.3.1 (http://arcHive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz)
• Django 1.4 (https://www.djanGoproject.com/download/1.4.1/tarball/)
安装步骤
1. Apache安装
#tar -zxvf httpd-2.2.22.tar.gz
# httpd-2.2.22
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
#make && make install
2. Python安装
# tar -zxvf Python-2.7.3.tgz
#cd Python-2.7.3
# ./configure
#make && make install
#mv /usr/bin/python /usr/bin/python.bak
#ln -s /usr/local/bin/python2.7 /usr/bin/python
#python -V #版本显示2.7.3
3. django安装
# tar -zxvf Django-1.4.1.tar.gz
#cd Django-1.4.1
#python setup.py install #执行没有报错,就说明安装成功
也可以检查是否成功
#python
>> import django #这样import导入django模块没有报错,就安装成功
4. mod_python安装
# tar -zxvf mod_python-3.3.1.tgz
# cd mod_python-3.3.1
#./configure \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-python=/usr/local/bin/python2.7
#make #执行make的时候会报错,如下:
解决办法:
编辑 /$home/mod_python-3.3.1/src/connobject.c 的 142 行:
!(b == APR_BRIGADE_SENTINEL(b)
改成:
!(b == APR_BRIGADE_SENTINEL(bb) 即:改成两个b
#make clean
#make && make install
5. Apache conf配置
1>.配置下httpd.conf,在这个文件里添加
LoadModule python_module modules/mod_python.so
另外我是开启了vhosts里面配置的,只需要将这行前面的#去掉
Include conf/extra/httpd-vhosts.conf
接着就是配置httpd-vhosts.conf文件,如下:
重启apache,测试下。
大致就是这样的,你可以访问下面网址,有相关的资料:
http://blog.163.com/zhulp0372@yeah/blog/static/115894479201182134911490/
http://www.cnblogs.com/oubo/archive/2012/04/06/2434961.html
http://djangobook.py3k.cn/2.0/chapter12/
• Apache 2.2.22 (Http://labs.mop.com/apache-mirror//httpd/httpd-2.2.22.tar.gz)
• python 2.7.3 (http://www.Python.org/ftp/python/2.7.3/Python-2.7.3.tgz)
• Mod_python 3.3.1 (http://arcHive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz)
• Django 1.4 (https://www.djanGoproject.com/download/1.4.1/tarball/)
安装步骤
1. Apache安装
#tar -zxvf httpd-2.2.22.tar.gz
# httpd-2.2.22
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
#make && make install
2. Python安装
# tar -zxvf Python-2.7.3.tgz
#cd Python-2.7.3
# ./configure
#make && make install
#mv /usr/bin/python /usr/bin/python.bak
#ln -s /usr/local/bin/python2.7 /usr/bin/python
#python -V #版本显示2.7.3
3. django安装
# tar -zxvf Django-1.4.1.tar.gz
#cd Django-1.4.1
#python setup.py install #执行没有报错,就说明安装成功
也可以检查是否成功
#python
>> import django #这样import导入django模块没有报错,就安装成功
4. mod_python安装
# tar -zxvf mod_python-3.3.1.tgz
# cd mod_python-3.3.1
#./configure \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-python=/usr/local/bin/python2.7
#make #执行make的时候会报错,如下:
connobject.c:142: error: request for member ‘next’ in something not a structure or uNIOn
apxs:Error: Command failed with rc=65536
make[1]: *** [mod_python.so] Error 1
make[1]: Leaving directory `/root/django_python/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
apxs:Error: Command failed with rc=65536
make[1]: *** [mod_python.so] Error 1
make[1]: Leaving directory `/root/django_python/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
解决办法:
编辑 /$home/mod_python-3.3.1/src/connobject.c 的 142 行:
!(b == APR_BRIGADE_SENTINEL(b)
改成:
!(b == APR_BRIGADE_SENTINEL(bb) 即:改成两个b
#make clean
#make && make install
5. Apache conf配置
1>.配置下httpd.conf,在这个文件里添加
LoadModule python_module modules/mod_python.so
另外我是开启了vhosts里面配置的,只需要将这行前面的#去掉
Include conf/extra/httpd-vhosts.conf
接着就是配置httpd-vhosts.conf文件,如下:
<VirtualHost *:80>
ServerName www.test.com
DocumentRoot "/data0/django/mysite"
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload Off
PythonDebug Off
PythonPath "['/data0/django/mysite'] + sys.path"
PythonInterpreter mysite
</Location>
<Directory "/data0/django/mysite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
ServerName www.test.com
DocumentRoot "/data0/django/mysite"
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload Off
PythonDebug Off
PythonPath "['/data0/django/mysite'] + sys.path"
PythonInterpreter mysite
</Location>
<Directory "/data0/django/mysite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
重启apache,测试下。
大致就是这样的,你可以访问下面网址,有相关的资料:
http://blog.163.com/zhulp0372@yeah/blog/static/115894479201182134911490/
http://www.cnblogs.com/oubo/archive/2012/04/06/2434961.html
http://djangobook.py3k.cn/2.0/chapter12/
相关文章