buenas tardes compañeros de logia

, la pregunta es la siguiente porque sera que tengo un sistema en php y cuando ejecuto la rutina para borrar archivos de un directorio si lo hago localmente lo hace pero si lo hago corriendo el sistema desde el servidor no lo hace; el directorio al que quiero acceder tiene privilegios 777 es decir que pueden hacer dentro de el lo que quiera. la rutina que utilizo es la siguiente:
<?php
if(!isset($__REMDIR)){
class NoOpenException extends Exception {}
class NoDeleteException extends Exception {}
class NoDirectoryException extends Exception {}
class UnlinkException extends Exception {}
function borrar_directorio($dir){
if(!is_dir($dir))
throw new NoDirectoryException("$dir::No es un directorio");
if(!($open = opendir($dir)))
throw new NoOpenException("$dir::No se puede abrir");
while($file = readdir($open)){
if($file == "." || $file == "..")
continue;
if(is_dir("$dir/$file"))
borrar_directorio("$dir/$file");
else
if(!unlink("$dir/$file"))
throw new UnlinkException("$dir/$file::No se pudo borrar el archivo");
}
closedir($open);
if(!rmdir($dir))
throw new NoDeleteException("$dir::No ha podido ser borrado");
}
$__REMDIR = true;
}
?>
el $dir se lo paso como parametro ejem: "/home/usuario/image/"; OJO es LINUX