Che senso ha andare alla radice delle directory e poi indietro ancora di due cartelle?

L'errore è chiaro. non esiste il file, quindi stai cercando nella cartella sbagliata...

proverei con

unlink("../../public/".$foto);

o

unlink("/public/".$foto);

o quantomeno capire dove sono locate ste stramaledette foto....