es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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”

Tags:  ,

Answer

  1. Avatar for 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:

    1. Verifique si el usuario del servidor web (por ejemplo, Apache) tiene suficientes permisos para ejecutar el comando jasperstarter y acceder a los archivos de informe y al directorio de salida. Mencionaste que el directorio tiene permisos 777, pero vale la pena verificar también la propiedad y las configuraciones de grupo. Si el usuario del servidor web no es el mismo que el propietario/grupo, es posible que deba usar chown y/o chgrp para cambiarlos en consecuencia.
    2. 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.

    3. 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.

    4. 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.

Comments are closed.