Skip to main content

:: [mod] python on apache httpd

:: whatis
please take a look at this.

:: installing dependency
[+] please install apache httpd on your server

:: installing python on apache
[+] compile and install python
[ root:~ ]# mkdir download
[ root:~ ]# cd download/
[ root:download ]# wget http://python.org/ftp/python/2.6.2/Python-2.6.2.tar.bz2
[ root:download ]# tar -xjf Python-2.6.2.tar.bz2
[ root:download ]# cd Python-2.6.2
[ root:Python-2.6.2 ]# ./configure --enable-shared
[ root:Python-2.6.2 ]# make && make install
[ root:Python-2.6.2 ]# ldconfig

[+] compile and install flex
[ root:download ]# wget http://sourceforge.net/projects/flex/files/flex/flex-2.5.35/flex-2.5.35.tar.bz2/download
[ root:download ]# tar -xjf flex-2.5.35.tar.bz2
[ root:download ]# cd flex-2.5.35
[ root:flex-2.5.35 ]# ./configure
[ root:flex-2.5.35 ]# make && make install

[+] compile and install mod_python
[ root:download ]# wget http://apache.pesat.net.id/httpd/modpython/mod_python-3.3.1.tgz
[ root:download ]# tar -xzf mod_python-3.3.1.tgz
[ root:download ]# cd mod_python-3.3.1
[ root:mod_python-3.3.1 ]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
[ root:mod_python-3.3.1 ]# vi src/connobject.c
#142 (on line #142)

change:

!(b == APR_BRIGADE_SENTINEL(b) ||

to

!(b == APR_BRIGADE_SENTINEL(bb) ||


[ root:mod_python-3.3.1 ]# make install_dso && make install_py_lib

:: configuring apache httpd for support mod_python

[ root:mod_python-3.3.1 ]# vi /usr/local/apache2/conf/httpd.conf

#
# Add this line for load mod_python
#
LoadModule python_module modules/mod_python.so

#
# example configuration on httpd.conf
#
<directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

#
# enable mod_python configuration
#
<ifmodule mod_python.c>
AddHandler mod_python .py .psp
PythonHandler mod_python.publisher | .py
PythonHandler mod_python.psp | .psp
</ifmodule>
</directory>

:: restart apache httpd service
[ root:~ ]# /usr/local/apache2/bin/apachectl stop
[ root:~ ]# /usr/local/apache2/bin/apachectl start

:: make testing python files
[+] Python PublisherHandler
[ root:~ ]# vi /usr/local/apache2/htdocs/python.py
def index(req):
return "Hello Guys.. (Publisher Handler)";

[+] PythonServerPages
[ root:~ ]# vi /usr/local/apache2/htdocs/python.psp
<html>
<body>
<%req.write("Hello Guys..(PythonServerPages)")%>
</body>
</html>

:: links
+ GoogleLinux
+ BlacKonsole

Comments