Bhe se hai accesso in ssh i passaggi sono più o meno questi (tieni presente che quello che sto per incollare arriva da una ubuntu, quindi potrebbero esserci delle differenze)
Lanciato il comando in grossetto vedo che l'utente è www-data
codice:
root@localhost:~# ps aux | grep apache
root 5258 0.0 1.9 57772 8888 ? Ss Mar26 0:00 /usr/sbin/apache2 -k start
www-data 9526 0.0 1.0 57908 4768 ? S 07:35 0:00 /usr/sbin/apache2 -k start
Ora controllo che www-data abbia una shell valida:
codice:
root@localhost:~# grep www-data /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/bash
La seconda parte in neretto indica che ho una shell, tu potresti anche trovarci /bin/false/, se mai edita il file con "nano" o con "vi" e cambia il valore.
Una volta fatto questo da utente root:
codice:
root@localhost:~# su - www-data
www-data@localhost:~$ whoami
www-data
Controllo per scrupolo, però secondo me i permessi sul comando non sono un problema:
codice:
www-data@localhost:~/$ ls -la /usr/bin/convert
-rwxr-xr-x 1 root root 4680 2007-10-03 00:39 /usr/bin/convert
I permessi infatti sono tutti a x, quindi non è quello il problema.
Ora facciamo una prova con il comando, io credo che il problema possa dipendere anche dai permessi dei file che vuoi editare, oppure della directory dove vuoi scriverli, per esempio :
codice:
www-data@localhost:~$ convert logo.jpg logo.bmp
convert: unable to open image `logo.bmp': Permesso negato.
Controllo i permessi del logo:
codice:
www-data@localhost:~$ ls -la logo.jpg
-rw-r--r-- 1 root root 13285 2008-04-20 09:57 logo.jpg
e li cambio:
codice:
root@localhost:/var/www# whoami
root
root@localhost:/var/www# chown www-data\: logo.jpg
root@localhost:/var/www# ls -la logo.jpg
-rw-r--r-- 1 www-data www-data 13285 2008-04-20 09:57 logo.jpg
root@localhost:/var/www#
ora riprovo:
codice:
www-data@localhost:~$ convert logo.jpg logo.bmp
convert: unable to open image `logo.bmp': Permesso negato.
allora è la dir :P
codice:
www-data@localhost:~$ logout
root@localhost:/var/www# mkdir testwww-data
root@localhost:/var/www# chown www-data\: testwww-data/
root@localhost:/var/www# su - www-data
www-data@localhost:~$ cd testwww-data/
www-data@localhost:~/testwww-data$ convert ../logo.jpg logo.bmp
adesso ce l'ho fatta :P.
Ora una prova che resta da fare è eseguire la stessa operazione con i comandi di php.
codice:
echo system ( 'convert /var/www/logo.jpg /var/www/testwww-data/logo.bmp');
e vedi se ti da errori.