Astenoth
Posts: 19
Joined: Thu Jan 30, 2014 12:25 pm

Apache2 CGI .py

Mon Mar 17, 2014 1:44 pm

Hola a todos,
He instalado Apache2 en la raspberry y tengo un problema al ejecutar un script python como CGI.
El siguiente me funciona en el navegador web:

Code: Select all

#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "<h1>Hello World</h1>"
Pero si uso el siguiente codigo no funciona:

Code: Select all

#!/usr/bin/env python
import socket, cgi, sys, json  
 
s = socket.socket()
try:
    s.connect(("localhost", 9999))
    s.send("status")
    bufsize = 1024
    estados=s.recv(bufsize)
    print "Content-type:text/html\r\n\r\n"
    print estados
except:
    print "Content-type:text/html\r\n\r\n"
    print (json.dumps({"IntDia": "Sin respuesta"}))
	#print 
s.close()  
Si ejecuto el modulo en el terminal funciona ok....
¿Alguien sabe que puede ser?
Un saludo

Astenoth
Posts: 19
Joined: Thu Jan 30, 2014 12:25 pm

Re: Apache2 CGI .py

Tue Mar 18, 2014 9:27 am

Hola, ya lo he solucionado y lo comparto por si a alguien le ocurre lo mismo.
Revisando los errores en el servidor

Code: Select all

sudo nano /var/log/apache2/error.log
Descubrí un error como el siguiente:

Code: Select all

/usr/bin/env: python /r No such file or directory
Parece ser que todo el problema es esa "/r" y todo es debido a que se ha editado el archivo en windows y ha metido un caracter no valido.
La solucion es instalar lo siguiente:

Code: Select all

sudo apt-get install tofrodos
sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
y ejecutar:

Code: Select all

sudo dos2unix /rutaarchivo/archivo.py
Resuelto
Un saludo

Return to “Español”