apache + mod_python 설정법
Apache 2.0 이상이라면 mod_python 버전 3이상을, Apache1.3 이라면 mod_python 버전 2를 다운 받는다.
1. python-devel
설치 되어 있어야만 mod_python 설치가 정상적으로 진행된다.
# rpm -qa | grep python-devel
# yum install python-devel
2. setuptools
python 패키지 관리자.
# rpm -qa | grep python-devel
# yum install python-setuptools
3. Database
sqlite/mysql/postgresql 등을 지원한다
4. mod_python 설치.
다운로드 : http://www.modpython.org/
# tar zxvf mod_python-3.3.1.tgz
# cd mod_python-3.3.1
# ./configure --with-apxs=/usr/local/web/apache/bin/apxs --with-python=/usr/bin/python
# make
# make install
make 시 mod_python-3.3.1/src/connobject.c 부분에서 에러 시
mod_python-3.3.1/src/connobject.c 를 열어
while ((bytes_read < len || len == 0) &&
!(b == APR_BRIGADE_SENTINEL(bb) ||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
#tar -xvzf mod_python-3.3.1.tgz
#cd mod_python-3.3.1
#configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/python2.7
#make
make 에서 에러가 난다.
src/connobject.c 에 문제가 있다면서 에러를 낸다.
#vi src/connobject.c
내용중에
while((bytes_read<len ||len == 0)&&
!(b==APR_BRIGADE_SENTINEL(b)||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
부분을
while((bytes_read<len ||len == 0)&&
!(b==APR_BRIGADE_SENTINEL(bb)||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {
수정한후 저장하고 다시 make
#make
#make install
mod_python 설정
#vi /usr/local/apache/conf/httpd.conf
LoadModule python_module /usr/local/apache/modules/mod_python.so
*다른 자료를 보니 전체경로가 아닌 modules/mod_python.so 이렇게만 써줘도 될듯하다.
<Directory "/var/www/html">
AddHandler mod_python .py .pl cgi_script
PythonHandler mod_python.cgihandler | .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
을 추가해주고 저장