Premessa:Originariamente inviato da mark2x
Non va:
Mentre va:Codice PHP:$comando = "/usr/bin/soffice";
shell_exec($comando);
pdftk è un tool da linea di comando.Codice PHP:$comando = "/usr/bin/pdftk";
shell_exec($comando);
Su Win non c'è differenza, se lancio un eseguibile lancio anche l'altro, posto il settaggio di "Permetti ad Apache di interagire col desktop" nella sua finestra in Servizi.
Ma su Linux?
C'è per caso un settaggio analogo? Non saprei dove iniziare dato che Linux lo conosco davvero poco.
Devi innanzi tutto vedere con quale utente gira apache (nel mio caso www-data):
Solitamente l'utente con cui gira il webserver non ha una shell valida (nel senso che non può accedere al pc ad esempio tramite ssh e non può far partire programmi).codice:caladan:/home/gianiaz# ps aux | grep apache root 2186 0.0 1.1 15688 5192 ? S Jul17 0:00 /usr/sbin/apache www-data 2191 0.0 1.8 17720 8476 ? S Jul17 0:03 /usr/sbin/apache
Quindi dobbiamo verificare che l'utente con cui gira apache abbia questa possibilità.
Lo verifichiamo cosi:
(il primo caso è quello dell'utente www-data che ha una shell valida, mentre il secondo è quello di un utente di sistema che non ha diritto di far partire le applicazioni).
Nel mio caso posso far partire i programmi che voglio, e dovrebbe funzionare il tuo metodo.codice:caladan:/home/gianiaz# cat /etc/passwd | grep www-data www-data:x:33:33:WebServer Caladan:/var/www:/bin/sh caladan:/home/gianiaz# cat /etc/passwd | grep syslog syslog:x:112:113::/:/bin/false caladan:/home/gianiaz#
Sappi che comunque (come ti avevo già detto tempo fa) non è una gran soluzione permettere al web server di far partire applicazioni tipo openoffice, quindi prendi in considerazione le altre possibilità per generare i pdf.
ciao

Rispondi quotando