Ver Mensaje Individual
  #1  
Antiguo 24-07-2012
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Reputación: 20
D-MO Va por buen camino
Python en hospedaje compartido (shared hosting)

¿Quién dijo que python no funciona en cuentas compartidas?... me animaría a decir que la mayoría de empresas de hospedaje web usan el mix [linux/unix] + apache + php + mysql, por lo que en los primeros dos componentes tenemos lo que necesitamos: Linux/Unix + apache.

¿Pero porqué esos dos?... ¿y python?
  • Linux/Unix
    Python es un elemento indispensable en estas distribuciones, así que no hay distribución que no incluya un interprete de python. Cualquier distribución actual tendrá como mínimo python 2.6... que es mas que suficinete .
  • Apache
    Para entornos mas complejos prefiero nginx + uwsgi, pero donde los recursos están limitados podemos utilizar apache + fastcgi (mi favorito en este caso). Fastcgi, aunque no viene habilitado por default en apache, si es algo que cualquier proveedor tendrá habilitado... ¿A caso no han visto en los centros de control (cpanel y amigos) traen una serie de scripts cgi "ready to install"?

Entonces, si tenemos una cuenta con apache en un servidor unix/linux no necesitamos mas.

Cita:
Nota importante
  1. Donde pongo mi script
    Por razones de seguridad, normalmente se delega a una carpeta dedicada para que ejecute los scrips cgi/fastcgi, normalmente es en /public_html/cgi-bin/. Más Información.
    Probablemente algún proveedor permita ejecutar cgi en la raiz (public_html ó www) del dominio, será de ver la documentación del proveedor o consultarles.
  2. Y que extensión lleva
    Algunos proveedores podrán haber limitado a que los scripts cgi terminen con extensión .cgi o .pl... pero a todo esto ¿a caso las extensiones son de algo en linux?... para ello ponemos el shebang al inicio del script que indica que interprete debe ejecutar este script, así que no hay problema si ponemos extensión .py, .cgi .pl ...o incluso .jsp/.aspx si quieren engañar a mas de alguno ...
    Insisto, la extensión no importa, solo asegurémonos de que el proveedor acepte esa extensión.
Hola Mundo!
Como buenos informáticos, partamos por el Hola Mundo... ¿Qué sería de la travesía por un nuevo lenguaje sin el Hola Mundo?

En la documentación de python ¿alguien ha dado una vuelta por allí? encontramos un capítulo dedicado a como usar python en la web, tenemos un código de ejemplo de un script cgi y otro fastcgi, así que partamos primero por el cgi:

Código:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain;charset=utf-8"
print

print "Hello World!"
Tomemos este código y guardemos en un archivo en el directorio que permita ejecución cgi (normalmente cgi-bin) dentro de el directorio del dominio. Digamos /public_html/cgi-bin/hello_world.py.

No olvidar que para que el script pueda ser ejecutado, el usuario de apache debe tener permisos de ejecución sobre ese archivo, así que le podemos dar permisos entre 755 y 777.

Ahora vamos con el navegador http://midominio.com/cgi-bin/hello_world.py

Así que quien tenga una cuenta compartida que empiece a probarlo... ¿alguno de los moderadores con acceso al servidor podría hacer la prueba sin tocar nada en apache... solo metiendo el script en el cgi-bin?

Mas adelante les pongo otro HowTo de una configuración mas avanzada para una app real utilizando siempre las cuentas compartidas

Saludos

Última edición por D-MO fecha: 24-07-2012 a las 19:33:59.
Responder Con Cita