tutto ok..ho trovato il problema..

alla fine era una cosa banale,

il codice corretto è il seguente..

echo substr(sprintf('%o', fileperms('../public/temp')), -4);
echo copy("../public/logo.jpg","../public/temp/logo.jpg");

nel caso dovesse servire a qualkuno!!!