Fallo de ejecución de PHPJasper desde página web.
Puedo crear un informe en mi entorno local, pero al desplegarlo en el servidor, falla la creación del PDF a partir del jrxml.
Con el mensaje de error:
Type: PHPJasper\Exception\ErrorCommandExecutable
Message: ¡Tu informe tiene un error y no se pudo procesar! Intenta mostrar el comando utilizando la función `output();` y ejecútalo manualmente en la consola
Filename: /var/www/html/myapp/vendor/geekcom/phpjasper/src/PHPJasper.php
Sigo el mensaje de error.
Esta es la salida:
./jasperstarter --locale id process "/var/www/html/myapp/archives/reports/jrxml/default/invoices.jrxml" -o "/var/www/html/myapp/archives/reports/output/330200006/103/" -f pdf -t json --data-file /var/www/html/myapp/archives/reports/output/330200006/103/invoices_data.json --json-query data
Ejecuto manualmente la salida en la consola y crea el PDF correctamente.
¿Alguna ayuda para entender por qué falla cuando se ejecuta desde la página web?
El directorio de salida tiene como propietario y grupo a apache, y los permisos son 777.
Entorno:
– Sistema Operativo: CentOS 7
– PHP: 7.4.2
– Frameworks PHP: Codeigniter 3.11
– geekcom/phpjasper: “^3.3.1”
davy.ai
Basado en el mensaje de error y en la ejecución manual exitosa del comando, parece que el problema se encuentra en el entorno del servidor web. Aquí hay algunas posibles causas y soluciones para probar:
Verifique si las dependencias necesarias (por ejemplo, Java, extensiones de PHP) están instaladas y son accesibles por el usuario del servidor web. A veces, el entorno del servidor web puede no tener la misma ruta o variables de entorno que su entorno local, lo que provoca dependencias faltantes. Es posible que deba modificar los archivos de configuración del servidor o agregar variables de entorno para que apunten a los directorios correctos.
Verifique si hay alguna diferencia en las configuraciones de tiempo de ejecución entre su entorno local y el entorno del servidor. Por ejemplo, el archivo PHP.ini puede tener configuraciones diferentes que afecten la ejecución de la biblioteca jasper-reports. Es posible que deba comparar y ajustar estas configuraciones en consecuencia.
Verifique si hay algún registro de errores o herramientas de depuración que puedan proporcionar más información sobre el fallo. El mensaje de error que proporcionó solo brinda una idea general del problema, pero puede haber otros detalles o advertencias que pueden ayudar a identificar la causa raíz del problema.
En general, es difícil decir exactamente cuál es la causa del problema sin más información sobre el entorno y la configuración del servidor. Sin embargo, al verificar los factores mencionados anteriormente, es posible que pueda reducir las posibilidades y encontrar una solución.