Windows, Apache, MySQL y Python: el otro WAMP

6 11 2007

Desde que empece a escuchar acerca del lenguaje de programación Python, me llamó la atención por varios motivos. El principal consistía en que el motor de búsqueda Google utiliza principalmente esta tecnología en su desarrollo de aplicaciones. Por lo cual pense que debía existir algún motivo por el cual, Python fuese especial.

Python es en si un lenguaje multiproposito. Es utilizado mucho en aplicaciones con un grado de complejidad bastante grande. Tiene mucho soporte para manejo de recursos a bajo nivel. También puede interactuar con el sistema operativo y existe soporte para muchos sistemas operativos.

Pues bien, entre mis investigaciones y pruebas he encontrado el método de instalar Python en un Servidor Apache. En este artículo describire el proceso para el sistema operativo Windows:

Paso 1: Instalar Apache para Windows. El proceso no es complicado. Lo fundamental es instalarlo desde un paquete de instalación. Como en todos los artículos que he redactado, creo que la mejor opción es instalar Apache en el directorio: C:\apache por que permite un mejor acceso. Instalaremos la versión 2.0.x de Apache. La nueva version 2.2.x ha resultado trabajar de manera distinta.

Paso 2: Descargar el paquete de instalación de Python para Windows. La web del proyecto es http://www.python.org. La instalación es bastante sencilla si elegimos el proceso de instalación mediante el paquete automático. Lo recomendable: instalar en C:\apache\python.

En si, no existe un modulo nativo de Apache para conectar el servidor con Python. El conector se podría hacer mediante un intérprete CGI, pero suele ser más lento a la hora de procesar los scripts. Sin embargo, existe un proyecto llamado mod_python que desarrolla un módulo de conexión. Podemos bajarlo desde la página del proyecto Apache. Debemos de tener cuidado con la versión que descargamos del módulo. El archivo que descarguemos, indica la versión de Python a la que da soporte. En nuestro caso, como instalaremos Pytnon version 3.58, descargaremos el archivo mod_python-3.3.1.win32-py2.5-Apache2.0.exe.

Durante el proceso de instalación, el programa nos pedirá indicar la ruta en que hemos instalado los archivos de Python (en mi caso: c:\apache\python). Mostrará un mensaje de confirmación y nuevamente nos pedirá que especifiquemos la ruta, esta vez de Apache (c:\apache\ por ejemplo) y las instrucciones de instalación del linker para Apache.

# Agregamos el módulo en el archivo httpd.conf
LoadModule python_module modules/mod_python.so

Al terminar, reiniciamos Apache. El instalador de Mod_Python, nos indicará que nos dirijamos a la página de especificación y de testeo. A continuación hago una traducción libre de parte del documento:

# Creamos un archivo .htaccess desde el directorio en el que
# queremos que sean interpretadas la páginas con Python

# Agregamos al .htaccess:
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On

La directiva AddHandler le asigna a Mod_Python la función de interpretar los archivos con extensión ( .py ). No soy experto en Python, recién estoy empezando a incursionar en el lenguaje. La directiva PythonHandler mptest indica el lanzador de Python y PythonDebug On enciende el interprete.

# Ahora creamos el archivo mptest.py y agregamos
from mod_python import apache

def handler(req):
    req.content_type = "text/plain"
    req.write("Hello World!")
    return apache.OK

Como podemos apreciar, según el documento, y para propositos de prueba el nombre del script es el mismo que el indicado en el .htaccess como lanzador. Otra cosa interesente. El código en Python es sensible a indendación.

Artículos Relacionados:

Anuncios




LAMP: Montando mi Servidor en Ubuntu

23 10 2007

Al fin puedo decir que soy un usuario de Linux Ubuntu. Ahora que Ubuntu se actualizó a la versión 7.10 Gutsy Gibbon no lo pense dos veces y le instalé el mismo día de su publicación. Para los programadores acostumbrados a Windows el cambio puede ser un tanto dificil; en especial por que hay que volver a empezar a configurar nuestro servidor de pruebas Apache con PHP y MySQL. Por suerte me encontré con una guía fantástica (eso si, en idioma inglés), que me atrevo a traducir, en parte, para ayuda de todos los que se plantean pasarse a la plataforma.

Instalando Apache:

sudo apt-get install apache2

Nos pedirá nuestra contraseña para autenticar. Por cierto, las instrucciones están para Ubuntu y sistemas basados en Debian. En otras distribuciones, el método es distinto. Luego vamos al explorador en http://localhost/

Instalando PHP:

La ventaja principal de los repositorios es que las aplicaciones ya están pre-compiladas, con lo cual nos ahorramos mucho tiempo y evitamos tener que conseguir todas las dependencias. Eso me pone a pensar que para desarrollar en Linux e instalar nuevas herramientas, es necesario contar con una conexión a Internet. Bien, ahora que tenemos Apache ya instalado, procedemos con PHP.

# Instalamos PHP 5
sudo apt-get install php5

# Instalamos el conector de PHP para Apache 2
sudo apt-get install libapache2-mod-php5

# Reiniciamos el Servidor
sudo /etc/init.d/apache2 restart

Con esto ya tenemos vinculado Apache con PHP. Nuestra carpeta DocumentRoot es /var/www/. Para probar creamos un archivo de prueba e incluimos la función <?php phpinfo(); ?>. Ahora, si el servidor nos mostrase el cuadro de dialogo Guardar Archivo, procedemos a forzar el reinicio de Apache.

sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload

 

# Instalamos módulos adicionales

# PEAR
sudo apt-get install php-pear

# GD
sudo apt-get install php5-gd

# XSL
sudo apt-get install php5-xsl

# CURL

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

# PostFix: soporte para la función mail()
sudo apt-get install postfix

# Reiniciamos el Servidor
sudo /etc/init.d/apache2 restart

Instalando MySQL:

La instalación de MySQL tambián viene a ser muy sencilla. La variante con respecto a la instalación en Windows es que en Linux, debemos instalar el soporte dentro de Apache y dentro de PHP.

# Para Apache (requerido para instalar en PHP)
sudo apt-get install libapache2-mod-auth-mysql

# Podemos definir la version 4 o 5 de PHP
sudo apt-get install php<version-number>-mysql
sudo apt-get install phpmyadmin

Ahora, editamos el archivo de configuración de PHP ubicado en /etc/php<version>/apache2/php.ini y agregamos:

extension=mysql.so

Lo bueno de esto es que se parece mucho al modo en Windows, por lo que cuando instalemos nuevas extensiones, podemos agregarlas al PHP.ini sin necesidad de recompilar.

Ahora, volvemos a reiniciar el Servidor de Apache. Y terminamos por instalar el Servidor de MySQL.

# Colocamos la contraseña de ROOT
sudo mysqladmin password <NEWPASSWORD>>

sudo apt-get install mysql-server

Y con esto ya tenemos instalado Apache, PHP y MySQL en Linux Ubuntu. Podemos reiniciar nuestro computador y cada vez que iniciemos, los servicios de Apache y MySQL se iniciaran automaticamente. Para probar la conexió de PHP con MySQL, podemos volver al archivo de prueba de creamos. Debemos ver el apartado de mysql.

Artículos Relacionados:





Top 10: mis sitios favoritos de junio

23 07 2007

Deberan perdonar el retraso de esta lista, pero he estado bastante ocupado en la publicación de otros artículos. Sin embargo aquí les dejo el listado de los sitios que he encontrado en la red, este pasado mes de junio.

Artículos Relacionados





Top 10: mis sitios favoritos de mayo

2 07 2007

Como si nada, hemos terminado el mes de Mayo. En muchos países de América L átina, el mes de mayo representa el mes de celebración para nuestras madres. Y aquí, en Dot Press, el mes de mayo termina con un nuevo listado de los mejores sitios de Internet:

Artículos Relacionados





Top 10: mis sitios favoritos de abril

7 05 2007

Al igual que la lista pasada, donde comenté acerca de los mejores sitios que había encontrado en la red, en el mes de marzo, nuevamente realizo esta lista, ahora con mis stios favoritos de abril. En este artículo, nuevamente incluyo vínculos de diversas áreas:

Artículos Relacionados





WAMP: guía para instalar PHP en Apache sobre Windows

22 03 2007

WAMP es una aplicación sobre Windows que automáticamente instala los servicios de PHP, Apache y MySQL sin mayores contratiempos. Sin embargo, en mi experiencia como programador experimentado de PHP, los valores de configuración que trae consigo WAMP no son los que me permiten trabajar de mejor forma en mis proyectos; sobre todo por que no tengo control sobre los servicios, y en mi manera de trabajar y organizar mis carpetas y archivos.

Es por eso que a continuación, he elaborado una guía de configuración básica de un servidor local para desarrollo con PHP sobre Windows. A continuación muestro las directivas de configuración que deben de agregarse.

Paso 1: Debemos descargarnos el instalador del servidor Apache desde la página del proyecto Apache Foundation Group. En este caso descargaremos la versión 2.0.59 por probar, a mi parecer ser más estable que la nueva versión que tiene una forma de trabajar un tanto diferente. Despues de descargado el instalador proceda a instalar Apache siguiendo las instrucciones del instalador. En mi manera de trabajar, yo prefiero instalarlo todo en la carpeta c:\apache. Si todo va bien, lograremos instalar el servidor en local y solamente tendremos el contratiempo de desbloquear el servicio para que pueda utilizar el puerto 80 (el mensaje aparecerá si tenemos Windows Firewall activado). Para comprobar que el servidor está corriendo debemos ir a nuestro explorador y escribir la dirección http://127.0.0.1 ó http://localhost/.

Paso 2: Descarga el instalador de PHP desde la página oficial del proyecto. Puede descargarse dos versiones de la última versión (en mi caso, la 5.0.2), la que trae instalador y la que es manual. Yo en lo particular prefiero la segunda. La versión con instalador no permite configurar automáticamente el archivo de configuración de Apache pero si configura ciertos parámetros para PHP. Ahora, para cualquiera de las dos, yo aconsejo instalarlo en la carpeta c:\apache\php.

Paso 3: Instale MySQL. El sitio del proyecto es http://www.mysql.com. La instalación de MySQL es sencilla. A mi modo de parecer, tambíen debería dentro de la carpeta de instalación de Apache en c:\apache\mysql. Algunos valores de configuración importantes son: la contraseña del root y la configuración del nombre del servicio. Algunos, tienden a no colocarle una contraseña al superusuario pero lo mejor es hacerlo con una contraseña como localsql o home. Para el servicio lo mejor es dejarlo como MySQL y agregarlo a la ruta PATH (un parámetro que posteriormente deberemos configurar para agregarle el soporte de MySQL a PHP). Adicionalmente, aconsejo instalar algunas aplicaciones para el mantenimiento del MySQL como Tools para MySQL y phpMyAdmin para no tener que entrar al servidor de base de datos desde la consola.

Paso 4: Configure el Servidor para que pueda servir archivos de PHP. Esta acción requiere que se edite el archivo de configuración del Servidor Apache ubicado en conf\httpd.conf. A continuación muestro las directivas de configuración que deben de agregarse.

# Cargar el módulo de PHP 5
LoadModule php5_module php/php5apache2.dll

# Cambiar la carpeta de DocumentRoot
DocumentRoot “C:/localhost”

# Especificar un archivo por defecto
DirectoryIndex index.html index.html.var index.php

# Asignarle el tipo MIME al documento PHP y su extensión
AddType application/x-httpd-php .php .hpp

Paso 5: Ahora es momento de configurar PHP, para que trabaje adecuadamente, y pueda conectarse al servidor de MySQL. El archivo de configuración de PHP, está ubicado en la carpeta de Windows y se llama php.ini. Este archivo contiene la información de configuración que utiliza el interprete del lenguaje.

; Habilitar Open Tags (no recomendado)
short_open_tag = Off

; Tipo de Mensajes de error.
error_reporting = E_ALL & ~E_NOTICE
display_errors = On

; Path en relativo, en donde están las extensiones para PHP
extension_dir = "./ext/"

; Carpeta temporal donde se copian los archivos subidos por medio de formularios
upload_tmp_dir = "c:\apache\php\uplodadtmp"

; Cargar la extensión de MySQL
extension=php_mysql.dll

; Directorio donde se guardan los valores de sesiones
session.save_path = "c:\apache\php\session"

Adicionalmente, deberá editar el valor de la variable de entorno PATH, agregando el directorio donde se encuentran instalados los archivos de PHP (especificamente, debe de existir el archivo libmysql.dll que permite, junto con la extensión de MySQL, el acceso al servidor de base de datos. Para editar la variable PATH ingrese a Propiedades del Sistema > Avanzado > Variables de Entorno. Agreguelo al final de la linea separado por un punto y coma (;) y reinicie su computador.

Después de reiniciar el sistema. Cree un nuevo archivo .php con el siguiente código y peguelo en el directorio que asigno com DocumentRoot en el archivo de configuración de Apache:

<?php phpinfo() ?>

Si el sistema fue configurado correctamente, aparecerá la información de configuración del sistema parecida a la siguiente imagen.

Para configuraciones adicionales, sugiero un repaso de las guías de configuración, disponibles en el sitio web de cada proyecto.

Artculos Relacionados