$dir cosa è? cioè in locale cosa è e sul server cosa è?
$dir è il percorso del file, escluso il nome. Se l'immagine normale è in ./foto/natale/foto1.jpg, $dir='foto/natale'.
Lo stesso in locale.

Tieni conto che è tutto relativo, $file passato alla funzione non ha percorso assoluto, ma relativo, rispetto al chiamante. Può essere un problema ?
Pensavo di no perchè thumb la crea nella posizione giusta....ma magari sbaglio qualcosa.....

Il server è linux.