2012-03-19 13 views
5

Ho provato a compilare il file di latex in script php, ma non è possibile chiamare xelatex.Impossibile eseguire il programma esterno tramite system()?

In script php:

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

uscita:

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

Ma nel mio terminale:

$ /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 come myuser, e passo system() percorso assoluto. E spengo lo safe_mode. Perché non riesco ancora a eseguire programmi esterni?

+0

Che cos'è chown e chgrp del tuo file php? e anche permesso – safarov

risposta

1

Finalmente ho contattato il mio amministratore di sistema e trovato il problema. La macchina è in un NFS, quindi la shell apache e login è su macchine diverse. Non c'è xelatex sulla macchina su cui è in esecuzione Apache.

0

Controllare l'autorizzazione della directory da cui è in esecuzione il codice PHP. verificare la presenza di permessi MyUser

solo per la verifica provare con radice.

Spero che questo aiuto

0

Sei sicuro che non è il file 'foo.tex', che non è in grado di trovare? Prova ad avere l'output della shell su un file, ad es. system("/usr/bin/xelatex ./foo.tex > ./test.out"); e vedi che fortuna hai allora.