Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #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
Poder: 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 20:33:59.
Responder Con Cita
  #2  
Antiguo 24-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por D-MO Ver Mensaje
Mas adelante les pongo otro HowTo de una configuración mas avanzada para una app real utilizando siempre las cuentas compartidas
Sólo espero que el más adelante no sea en un año .

Ya hice la prueba http://clubdelphi.com/cgi-bin/hello_world.py y atestiguo que funciona tal cual dice D-MO

// Saludos
Responder Con Cita
  #3  
Antiguo 24-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Ya hice la prueba http://clubdelphi.com/cgi-bin/hello_world.py y atestiguo que funciona tal cual dice D-MO // Saludos
Y yo estuve varios días con un tutorial en el que fallaban todos los ejemplos, para sacar el mismo 'hola mundo'
Responder Con Cita
  #4  
Antiguo 24-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Dime qué tutorial lees y te diré que aprendes

Ya en serio, ¿cómo eran los ejemplos?

// Saludos
Responder Con Cita
  #5  
Antiguo 24-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
La verdad es que cogí el directorio donde tenía todo lo que iba bajando sobre python y django y lo borré
Responder Con Cita
  #6  
Antiguo 24-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
D-MO:

¿Para qué es el cgitb.enable? Porque si omito esas lineas igual sirve:

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

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

print "Hello World!"
// Saludos
Responder Con Cita
  #7  
Antiguo 25-07-2012
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Sólo espero que el más adelante no sea en un año .
Ouch!!...
Cita:
Empezado por roman Ver Mensaje
...y atestiguo que funciona tal cual dice D-MO
Gracias por hacer la pública la prueba
Cita:
Empezado por roman Ver Mensaje
¿Para qué es el cgitb.enable?
Como dije arriba, el código lo tomé del ejemplo de aquí tal cual, allí dicen:
Cita:
cgitb – Displays nice tracebacks when errors happen in CGI applications, instead of presenting a “500 Internal Server Error” message
Aunque para ser sincero nunca lo he usado pues me ha parecido mas que suficiente los tracebacks que genera django (ver imagen) y con la posibilidad de usar debug_toolbar (ver imagen)


Django Teaceback


Debug Toolbar

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con $210D Shared memory, W7 y Delphi2010 agustibaldo Conexión con bases de datos 1 29-06-2011 01:50:13
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 06:19:15
Memoria Compartida. Shared Memory escafandra C++ Builder 6 28-02-2008 18:47:40
hospedaje CGI Onti Internet 1 17-06-2004 03:38:45


La franja horaria es GMT +2. Ahora son las 11:33:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi