最近要在aws上搭建一个小站,需要的环境是python环境,主要是面对的海外用户,在aws选的是新加坡节点,因为之前是写过一段时间的php程序,对lamp部署环境还是比较熟悉的,部署前先学习了下,有了个大概了解,就开始上手部署了,首先下载所用的安装包:
1、httpd-2.2.31.tar.bz2
2、mod_python-3.3.1.tgz
第一个包是apache源码包,第一个是mod_python模块,用来支持解析python 程序的,这里要说一下,apache不管是跟php或者python,其实原理是基本一样的,php是需要安装php源码包,安装完后用来解析php程序,python也是一样,apache需要加载一个模块来支持python解析。
正式开始安装:
下载源码包:
#wget ftp://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2
#wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
1
2
3
下载源码包:
#wget ftp://mirrors.sohu.com/apache/httpd-2.2.31.tar.bz2
#wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
首先安装apache
#tar -jxvf httpd-2.2.31.tar.bz2
#cd httpd-2.2.31
#./configure --prefix=/usr/local/apache2 --enable-cgi --enable-modules=all --enable-mods-shared=all --enable-cache --enable-mem-cachec --enable-headers --enable-ssl --enable-http --enable-rewrite --enable-so
#make
#make install
1
2
3
4
5
#tar -jxvf httpd-2.2.31.tar.bz2
#cd httpd-2.2.31
#./configure --prefix=/usr/local/apache2 --enable-cgi --enable-modules=all --enable-mods-shared=all --enable-cache --enable-mem-cachec --enable-headers --enable-ssl --enable-http --enable-rewrite --enable-so
#make
#make install
安装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/bin/python
#make
#make install
1
2
3
4
5
#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/bin/python
#make
#make install
在安装mod_python时报错,
make[1]: *** [mod_python.so] Error 1
1
make[1]:***[mod_python.so]Error1
最终从度娘那里找到了解决方案,真是感谢呀,呵呵,解决如下:
解决方法:
编辑 /root/soft/mod_python-3.3.1/src/connobject.c 的 142 行:
!(b == APR_BRIGADE_SENTINEL(b)
改成:
!(b == APR_BRIGADE_SENTINEL(bb) 即:改成两个b
1
2
3
4
5
解决方法:
编辑/root/soft/mod_python-3.3.1/src/connobject.c的142行:
!(b==APR_BRIGADE_SENTINEL(b)
改成:
!(b==APR_BRIGADE_SENTINEL(bb)即:改成两个b
到这里都安装完了,开始编辑 httpd.conf加入mod_python模块支持:
在加载模块段加入
LoadModule python_module libexec/mod_python.so
在网站主目录加入
AddHandler mod_python .py
PythonHandler index
PythonDebug On
1
2
3
4
5
6
在加载模块段加入
LoadModulepython_modulelibexec/mod_python.so
在网站主目录加入
AddHandlermod_python.py
PythonHandlerindex
PythonDebugOn
开始启动apache
#/usr/loacl/apache2/bin/apachectl start
httpd: Syntax error on line 118 of /home/dantezhu/apache/conf/httpd.conf: Cannot load /home/dantezhu/apache/libexec/mod_python.so into server: /home/dantezhu/apache/libexec/mod_python.so: cannot open shared object file: No such file or directory
1
2
#/usr/loacl/apache2/bin/apachectl start
httpd:Syntaxerroronline118of/home/dantezhu/apache/conf/httpd.conf:Cannotload/home/dantezhu/apache/libexec/mod_python.sointoserver:/home/dantezhu/apache/libexec/mod_python.so:cannotopensharedobjectfile:Nosuchfileordirectory
又是报错,真是多灾多难呀,根据报错提示是说libexec下没有这个mod_python.so模块,我ls 看了下,别说模块,我连这个鸟目录都没发现,不知道不是我版本问题,不管那么多了,新建目录,然后拷贝mod_python.so到这个目录下:
#mkdir libexec
#cp modules/mod_python.so libexec/
1
2
#mkdir libexec
#cp modules/mod_python.so libexec/
然后再启动apache ,就OK了,看下进程都已经启动了,登录测试页,一切显示正常,大功告成,今天就学习到这里,睡觉了。