Posts etiquetados ‘configuración’

Python en Apache 2 (para tarados)

Febrero 4, 2009

Solo para no buscar por Google como un tarado por enésima vez:

Para correr scripts hechos en Python y Ruby en Apache2 sin recurrir a mod_python (corriendo sobre Ubuntu o Debian-símiles).

Editar: /etc/apache2/sites-available/default

o el sitio que corresponda.

Agregar en ls sección <Directory /var/www > o donde correponda

AddHandler cgi-script .rb
AddHandler cgi-script .py

El resto es obvio:

  • reiniciar el servidor ( /etc/init.d/apache2 force-reload o restart)
  • que los scripts tengan permiso de ejecución
  • que tengan al inicio la línea de arranque (es mejor  #!/usr/bin/env python o ruby según corresponda)
  • eventulamente editar en la configuración del directorio el permiso para ejecutar cgis en la parte de Options agregando +ExecCGI )

La siguiente vez que lo busque como un tarado y lo encuentre en mi propio blog, prometo postearlo en los comentarios de forma recursiva hasta envejecer.

Pylint: chequear código escrito en Python

Enero 31, 2009

Dado que la calidad de mi código siempre dejó mucho que desear (ausencia de comentarios, estilo desprolijo, etc),Pylint me viene como anillo al dedo cuando hago algo en Python. El problema es que la configuración que trae por defecto no me gusta: hace que salten alertas sin motivo y me llena de reportes que no necesito. Básicamente cuando escribo quiero que me alerte sobre aquellas cosas que lo ameriten y que me muestre nada más el puntaje que le da a mi código. Me marco como meta un código con puntaje superior a 9 y libre de bugs.

Cambios en la configuración de Pylint

1. En el directorio $HOME (/home/usuario/) teclear:

pylint --generate-rcfile > .pylintrc

Con eso se genera un archivo de configuración que queda oculto (por el punto delante del nombre de archivo) en uno de los lugares donde pylint va a buscar por defecto un archivo de configuración.

2. Edito el archivo generado:

nano .pylintrc

3. Edito las siguientes líneas asignando los siguientes valores:

# Disable the message(s) with the given id(s).
disable-msg=C0103
# Include message's id in output
include-ids=yes
# Disable the report(s) with the given id(s).
disable-report= R0801, R0701, R0101, R0001, R0003
# Maximum number of characters on a single line.
max-line-length=100

Con eso obtengo un reporte limpio con un puntaje asignado al código.

Pueden encontrar más documentación sobre pylint en su directorio de documentación (en Ubuntu es /usr/share/doc/pylint) que si lo abren desde el navegador pueden encontrar unas útiles páginas con faq y características completas del programa.

Mantengo una pestaña del navegador apuntando al reporte generado para actualizarlo y leer la última versión.

El reporte lo genero tecleando:

pylint nombre_del_programa.py > reporte.txt

Si teclean:

pylint -f html nombre_del_programa.py > reporte.html

les queda en formato…  HTML  ;-)

Lighttpd y error “Forbidden”

Junio 22, 2008

CONTEXTO: Estoy con ganaas de migrar el sistema de la empresa que está armado sobre un robusto Apache + Php + Mysql a algo más ajustado al tipo de sistema del que se trata: bajo numero de accesos, necesidad de respaldos rápidos y minimizar opciones esotéricas de configuración.
Se me ocurrió que la combinación más sencilla sería Lighttpd + Ruby + SQlite3.

PROBLEMA: Cuando quise configurar Lighttpd, me enloqueció con errores de tipo “403… Forbidden”. No podía entender porqué era el error si tenía todos los permisos ajustados para que todo el mundo pudiera leer.

SOLUCION: se me fueron los problemas cuando modifiqué el archivo de configuración ( /etc/lighttpd/lighttpd.conf ). Comenté las líneas server.username y server.groupname de modo que quedó la opción por defecto (“don’t care”):

## change uid to (default: don’t care)
#server.username = “www-data”

## change uid to (default: don’t care)
#server.groupname = “www-data”