Estoy ejecutando el proyecto Laravel en el servidor Nginx, en el que llamo a un archivo python usando el siguiente comando pasando argumentos
$result = exec("python3 path/to/file.py $data");En el archivo python, hay una línea de código
font_file = base_path+'/fonts/LiberationMono-Bold.ttf' cmd = ["ttf2cxf_stream", "", "-s","5.0", font_file,"STDOUT"] p = Popen(cmd, stdout=PIPE, stderr=PIPE)Esto da un error de que no puede abrir el archivo de fuente que está presente en esa ubicación. El propietario del proyecto es ubuntu:www-data y el archivo de fuente está presente en ese proyecto. También intenté darle permiso 777 pero aún no tuve suerte.
Ahora, cuando ejecuto el mismo comando en la terminal
python3 path/to/file.py "data"Se ejecuta con éxito sin el error de acceso al archivo de fuente. ¿Cual podría ser el problema?
Me había enfrentado a un problema similar al usar la biblioteca "ttf2cxf_stream" para abrir fuentes - archivos ttf. Verifique si ttf2cxf_stream existe en el directorio /usr/bin ; de lo contrario, intente copiarlo desde el directorio /usr/local/bin/ y vea si puede ejecutar el archivo py a través del código PHP.