Instalación de Python 2.5.x y mod_python 3.x en FreeBSD 7.x

Instalación del intérprete de Python.

# cd /usr/ports/lang/python

# make install clean
    THREADS
    UCS4
    PYMALLOC
    IPV6
# python -V
    Python 2.5.2

Instalación de mod_python.

# cd /usr/ports/lang/mod_python3
# make install clean

Configuración de Apache con mod_python.

# vi /usr/local/etc/apache22/httpd.conf
    LoadModule python_module libexec/apache22/mod_python.so
    PythonOption mod_python.mutex_directory "/tmp"
    PythonOption mod_python.mutex_locks 8
    <Directory "/home/web">
        AddHandler mod_python .py
        PythonHandler pythontest
        PythonDebug On
    </Directory>

Recuérdese que el DOCUMENT_ROOT del servidor es “/home/web“.

A continuación se creará el siguiente archivo ubicado en /home/web/pythontest.py para verificar el funcionamiento del módulo.

# vi /home/web/pythontest.py
from mod_python import apache

import datetime

def handler(req):
    today = datetime.date.today()
    req.content_type = "text/plain"
    req.write("Hello, today is " + str(today.day) + "/" + str(today.month) + "/" + str(today.year) + ".")
    return apache.OK

Si se consulta el sitio http://webserver.mydomain.com/pythontest.py deberá obtenerse una respuesta similar a la mostrada a continuación.

    Hello, today is 27/5/2008.

Si se intenta ejecutar cualquier otro programa .py ubicado en el mismo directorio (/home/web) se obtendrá siempre la misma respuesta ya que en la configuración de Apache se especificó que ese archivo (pythontest.py) sería quien manipulase los archivos Python en ese directorio. Para permitir el acceso de otros programas desde la misma ubicación se deberán utilizar manipuladores (handlers) especiales como mod_python.Publisher, mpservlets o Vampire.

Enalces.

Leave a Reply

Your email address will not be published. Required fields are marked *