ciao,
sinceramente il codice è lunghissimo quindi gli ho dato solo una sbirciata, ma:
./ non significa root bensì il punto indica la cartella corrente.
Quindi se il file php l'avessi salvato nella cartella /var/www/sito/pippo, e nel file ci fosse scritto ./immagini/ciao.gif, questo codice si riferirebbe all'immagine ciao.gif nel path /var/www/sito/pippo/immagini

se vuoi riferirti alla cartella root basta mettere il path assoluto, quindi cominciando con lo "/" iniziale.

Avevo avuto un problema simile con un server winzzoz di aruba che non mi faceva fare upload nella cartella che gli avevo indicato e poi ho scoperto che solo alcune delle cartelle avevano i permessi di scrittura prestabiliti e anche se li modificavo non potevo fare upload, ma dovevo usare solo le cartelle che loro avevano abilitato.

cmq se devi fare l'upload di qualche immagine puoi fare cosi':
codice:
$nome=$_FILES['immagine']['name'];
$path="./img/".$nome;
move_uploaded_file($_FILES['immagine']['tmp_name'], $path);
per esempio passando la variabile immagine tramite form
ciao ciao