Generalidades
Al crear un script de Python en DreamHost, hay ciertas reglas que se deben seguir para garantizar que el archivo funcione correctamente.
Extensiones de Archivo
Todos los scripts Python CGI en DreamHost deben terminar con las siguientes extensiones:
Extensiones | Caso de uso |
---|---|
.fcgi | Esta extensión usa FastCGI |
.py | Esta extensión usa CGI |
.cgi | Esta extensión usa CGI |
Primera línea del archivo Python
La primera línea del archivo podría ser la ubicación del servidor de Python2 o Python 3
#!/usr/bin/python #!/usr/bin/python3
Sin embargo, si has instalado una versión personalizada de Python, la primera línea de tu archivo debería apuntar a esa ubicación. Por ejemplo, después de instalar una versión personalizada de Python, ejecuta which python. La salida se verá así:
/home/username/opt/python-3.8.5/bin/python3
La primera línea de tu archivo debería verse así:
#!/home/username/opt/python-3.8.5/bin/python3
Permisos de Archivo
Los permisos del archivo deben establecerse en 755. Puedes cambiar esto corriendo el siguiente comando a través de SSH:
[server]$ chmod 755
Terminaciones de línea
Asegúrate de usar líneas nuevas de estilo UNIX, no Windows.
Ver salida
Si deseas ver la salida impresa de tu código Python, debes agregar esto como la primera línea de salida:
print "Content-type: text/html\n\n"
Ejemplo Hello World!
El código a continuación mostrará Hello World! en un navegador web. Asegúrate de cambiar el username a tu usuario Shell.
#!/home/username/opt/python-3.8.5/bin/python3
print("Content-type: text/html\n\n")
print("Hello World!")
Ejecución de Apache
Si no deseas que Apache ejecute archivos .py agrega lo siguiente a tu archivo .htaccess:
RemoveHandler .py
Grupo Unix
En DreamHost, todos los scripts Python CGI Y tu directorio primario inmediato deben tener tu usuario Unix y tu grupo Unix configurados para el usuario Unix de tu dominio Y el grupo UNIX PREDETERMINADO de ese usuario (de lo contrario, obtendrás un error interno del servidor desde el suexec de Apache).