2012-03-19 11 views
5

Intenté compilar mi archivo latex en script php, pero no puede llamar al xelatex.No se puede ejecutar un programa externo a través de system()?

En script PHP:

system("/usr/bin/whoami"); 
system("/usr/bin/xelatex foo.tex 2>&1"); 

de salida:

myuser 
sh: 1: /usr/bin/xelatex: not found 

Pero en mi terminal:

$ /usr/bin/whoami 
=> myuser 
$ /usr/bin/xelatex foo.tex 
This is XeTeX, Version 3.1415926-2.2-0.9995.2 (TeX Live 2009/Debian) 
...(successful output)... 

corro PHP como myuser, y paso system() ruta absoluta. Y apago safe_mode. ¿Por qué aún no puedo ejecutar programas externos?

+0

¿Qué es chown y chgrp de su archivo php? y también permiso – safarov

Respuesta

1

Finalmente me puse en contacto con el administrador de mi sistema y encontré el problema. La máquina está en un NFS, por lo que el apache y el shell de inicio de sesión se encuentran en diferentes máquinas. No hay xelatex en la máquina donde Apache se está ejecutando.

0

Compruebe el permiso del directorio desde el que ejecuta el código PHP. verifica mis permisos de usuario

solo para verificación pruébalo con root.

Esperanza esta ayuda

0

¿Estás seguro que no es el archivo 'foo.tex', que no es capaz de encontrar? Intente tener la salida de shell en un archivo, p. system("/usr/bin/xelatex ./foo.tex > ./test.out"); y mira qué suerte obtienes entonces.

Cuestiones relacionadas