Newsgroup: it.comp.www.php
Titolo: ImageMagick with php

ho compilato ImageMagick sul server e funziona perfettamente dalla shell ma
non riesco assolutamente ad utilizzarlo dal php
cioč per esempio
nella shell digito
convert path_assoluta/prova.jpg path_assoluta/bmp/prova.bmp
e l'immagine viene convertita perfettamente
perņ provo ad utilizzarlo in php sullo stesso file
$startpath="/home/httpd/user012/html/immagini/"
$name="prova.jpg"
$onlyname=str_replace(".jpg", "", $name);
exec(EscapeShellCmd("convert ".$startpath.$name."
".$startpath."bmp/".$onlyname.".bmp"));
e non succede assolutamente nulla ..... ho provato anche con path relative
sbaglio qualcosa?
grazie Andrea

> e non succede assolutamente nulla .....
ho avuto lo stesso problema utilizzando come webserver Apache su un server
Linux.
Se la tua configurazione č questa ti dico che č un problema di permessi
sulla directory nella quale tenti di scrivere l'immagine convertita.
Praticamente la dir deve avere gli stessi permessi con i quali gira Apache.
Saluti.
Alfioz


sip la configurazione è proprio quella
red hat 6.2,Apache 1.3.22, php 4.1.2
infatti anchio penso sia un problema di permessi anche perchè le immagini
che voglio convertire sono state generate automaticamente come anteprima
durante l'upload di alcune immagini tramite l'uso delle GD 2.0.1, e
guardando i privilegi di questi file mi sono accorto che sono associati
all'utente "apache" gruppo "apache" con privilegi rw-r-r (infatti non riesco
a sovrascriverli tramite ftp) e la directory che li contiene "utente_012"
gruppo "webusers" rw-rw-rw
però purtroppo devo convertire questi file in bmp
ma come faccio a sapere i permessi con i quali gira Apache? forse sono gli
stessi con cui ha creato i file con GD .... ho provato ad impostare gli
stessi privilegi alle dir ... ma nulla

> ma come faccio a sapere i permessi con i quali gira Apache?
fai un
ps aux | grep apache
Sicuramente noterai diversi processi apache. Il primo che gira con l'utente
root e gli altri, quasi sicuramente, con l'utente nobody se l'installazione
di apache è quella di default.
Questo lo puoi verificare guardando httpd.conf e cercare le direttive User e
Group che ti dicono l'utente e il gruppo con i quali gira apache.
O modifichi le direttive o modifichi i permesse alla dir.
Ciao!
Alfioz

 ha scritto nel messaggio
news:ahj8m5$gnp$1...@server-b.cs.interbusiness.it...

penso che ci sia un'altro problema
ho provato ad eseguire il comando di shell con questo script php, in questo
modo riesco a sapere cosa accade durante il processo
$command="convert /home/httpd/html/utenti_012/loghi_128x128_col/000.jpg
/home/httpd/html/utenti_012/loghi_128x128_col/bmp/000.bmp";
function mysystem($command, $hide=true) {
  if (!($p=popen("($command)2>&1","r"))) return 126;
  while (!feof($p)) {
    $l=fgets($p,1000);
    if ($hide) print $l;
  }
  return pclose($p);
}
mysystem($command);
ed ottengo un deprimente risultato
sh: convert: command not found

 sh: convert: command not found
Azz, allora è tutto un altro paio di maniche...
Comunque quello che ho detto io è vero!!! :-)
Ciao...
Alfioz

 ha scritto nel messaggio
news:ahjacv$ig9$1...@server-b.cs.interbusiness.it...

ce l'ho fatta ^_^
il problema era solo che il comando convert bisogna inserirlo con la path
assoluta della directory dove è sono state istallate le librerie di
ImageMagick
cioè
function mysystem($command, $hide=true) {
  if (!($p=popen("($command)2>&1","r"))) return 126;
  while (!feof($p)) {
    $l=fgets($p,1000);
    if ($hide) print $l;
  }
  return pclose($p);
}
$command="/usr/local/bin/lib/convert /home/httpd/html/utenti_012/000.jpg
/home/httpd/html/utenti_012/bmp/000.bmp";
mysystem($command);
cosi' funziona ^_^
che libidineee
ciao .-)
andrea

 ImageMagick
Porca miseria! Era la prima cosa che volevo dirti, ma poi mi sono detto:
sicuramente avrà provato... :-)
Sculo...
Ciao!
Alfioz