Ghostscript en hosting compartido: disponibilidad y alternativas

La disponibilidad de Ghostscript en hosting compartido depende del sistema operativo, la versión instalada, los permisos de ejecución y las políticas de seguridad del servidor. Que una aplicación PHP mencione Ghostscript como requisito no significa que pueda instalarse o ejecutarse libremente dentro de cualquier cuenta.

Antes de contratar o modificar un proyecto, identificá qué operación necesita realizar: generar miniaturas de PDF, convertir PostScript, unir documentos, rasterizar páginas o comprimir archivos. Esa información permite evaluar si Ghostscript es realmente necesario o si existe una alternativa más adecuada.

Qué es Ghostscript

Ghostscript es un intérprete y motor utilizado para procesar PostScript, EPS y PDF. Puede convertir documentos a imágenes, generar PDF desde PostScript y actuar como componente interno de otras aplicaciones.

En sistemas similares a Unix suele invocarse con el comando gs. La documentación oficial de Ghostscript muestra distintos dispositivos de salida y parámetros para rasterizar o convertir documentos.

Por qué puede estar restringido en hosting compartido

Un plan compartido aloja varias cuentas sobre la misma infraestructura. Permitir que cada sitio ejecute programas externos con archivos proporcionados por visitantes aumenta el riesgo y dificulta controlar recursos.

  • Un PDF complejo puede utilizar mucha CPU o memoria.
  • La rasterización a alta resolución puede generar archivos enormes.
  • Un proceso sin límites puede quedar ejecutándose demasiado tiempo.
  • Documentos no confiables deben tratarse como entrada potencialmente maliciosa.
  • La aplicación puede requerir acceso a rutas o comandos no permitidos.
  • La versión necesaria puede no coincidir con la instalada por el servidor.

Por estas razones, un proveedor puede no instalar Ghostscript, limitar funciones PHP como exec() o permitirlo sólo en servicios administrados específicos.

Ghostscript e ImageMagick no son lo mismo

ImageMagick procesa numerosos formatos de imagen, pero para leer PDF o PostScript normalmente delega parte del trabajo a Ghostscript. Por eso una aplicación puede detectar ImageMagick y aun así fallar al convertir un PDF.

Además, la política de ImageMagick puede bloquear los formatos PDF, PS o EPS aunque Ghostscript exista. No conviene modificar policy.xml en un servidor compartido ni intentar evadir sus restricciones: esas reglas forman parte de la seguridad definida por el administrador.

Cómo comprobar si está disponible

La opción más segura es consultar con soporte antes de desarrollar la integración. Indicá:

  • aplicación, plugin o biblioteca que lo requiere;
  • operación exacta que realizará;
  • formatos de entrada y salida;
  • tamaño y cantidad estimada de documentos;
  • si los archivos son cargados por usuarios;
  • versión mínima y módulos requeridos.

Si la cuenta dispone de Terminal y el proveedor autoriza la prueba, gs --version puede mostrar la versión. No ejecutes comandos encontrados en Internet ni cargues binarios precompilados dentro de la cuenta sin autorización.

Que el binario exista no garantiza que PHP pueda usarlo

El proceso web puede tener un entorno, permisos y rutas diferentes a los de una sesión de Terminal. También pueden estar deshabilitadas las funciones que ejecutan comandos externos. Una prueba manual exitosa no garantiza que el plugin funcione desde PHP.

La aplicación debe controlar errores, tiempo máximo, rutas y nombres de archivo. No construyas una línea de comandos concatenando directamente datos enviados por el visitante.

Procesar archivos no confiables

Un documento cargado por un usuario debe considerarse no confiable. Validá tamaño, tipo real, cantidad de páginas y límites de resolución. Utilizá una versión actualizada y las opciones de seguridad recomendadas por el proyecto.

La opción -dSAFER aparece en ejemplos oficiales, pero no reemplaza el aislamiento, las actualizaciones ni los límites de recursos. Tampoco convierte en segura una aplicación que permite inyección de comandos.

Evitar conversiones costosas

La cantidad de píxeles crece rápidamente con la resolución y el número de páginas. Generar una miniatura de la primera página a 120 o 150 DPI es muy diferente de rasterizar un documento completo a 600 DPI.

Definí límites de páginas, tamaño, resolución, tiempo y procesos simultáneos. Guardá en caché el resultado cuando el mismo documento se solicita varias veces y eliminá temporales mediante un proceso controlado.

Alternativas cuando Ghostscript no está disponible

  • Utilizar una biblioteca que resuelva la tarea sin ejecutar el binario, si existe y es compatible.
  • Procesar documentos en el equipo del administrador antes de subirlos.
  • Usar una API especializada con autenticación y límites.
  • Ejecutar la conversión en un worker, contenedor o servidor separado.
  • Contratar un VPS donde pueda instalarse y mantenerse la versión requerida.
  • Evitar la conversión y entregar el PDF original cuando el objetivo lo permita.

Una API externa implica revisar privacidad, ubicación de los datos, costos y retención de documentos. No envíes archivos confidenciales a un tercero sin evaluar sus condiciones.

Cuándo conviene un VPS

Un VPS resulta más apropiado cuando el proyecto necesita una versión concreta, comandos personalizados, procesos en cola o conversión frecuente. También permite aislar workers y establecer límites propios.

Ese control agrega responsabilidad: hay que instalar actualizaciones, configurar permisos, monitorear recursos y proteger la recepción de archivos. Consultá cómo funcionan los límites del hosting compartido antes de comparar ambos entornos.

Licencia y distribución

Ghostscript se publica bajo condiciones de licencia que deben revisarse si se redistribuye, integra o comercializa como parte de un producto. Utilizar un ejecutable instalado en el servidor no resuelve automáticamente las obligaciones de la aplicación. Para proyectos comerciales, verificá la licencia vigente con el proveedor del software.

Datos para solicitar una evaluación

No preguntes solamente “¿tienen Ghostscript?”. Explicá el flujo completo y proporcioná la documentación del plugin. Soporte podrá confirmar disponibilidad y restricciones de infraestructura, pero la adaptación del código y la elección de parámetros corresponden al desarrollador.

Ghostscript es una herramienta potente, pero el procesamiento de documentos combina seguridad, recursos y compatibilidad. En hosting compartido conviene confirmar el caso de uso antes de instalar la aplicación y elegir una alternativa cuando necesita control del sistema.