Let’s assume that you have a script that creates folders and files with specific php functions.
On Linux-based servers, these files and folders belongs to “apache” user, and not to you. Of course, you can create them with 777 permissions, but default is 755, which means no write permissions to other users and groups than “apache”.
Can you delete these files and folders through FTP ? No way.
The only way to delete them is like you create (through php functions, under the “apache” user):
unlink (file) deletes a file
rmdir (folder) deleted a folder
You can use them independently or, if you want to recursive delete a folder, its subfolders and files you can use this function (i found it php manual unlink page):

function SureRemoveDir($dir) {
   if(!$dh = @opendir($dir)) return;
   while (($obj = readdir($dh))) {
     if($obj==‘.’ || $obj==‘..’) continue;
     if (!@unlink($dir.‘/’.$obj)) {
         SureRemoveDir($dir.‘/’.$obj);
     } else {
         $file_deleted++;
     }
   }
   if (@rmdir($dir)) $dir_deleted++;
}

and you can simply call it as:

<? SureRemoveDir ("Test"); ?>

Another techniques can also solve this situation, such as:
– if you have SSH access, you can user sudo chown command to take control and then delete then normally
– you can ask for help to an administrator (he will also use the sudo chown)
– use suExec, if it is installed on the machine

Andrei
http://www.webxpert.ro


4 Responses to “How to delete Apache owned files and folders from your website”
  1. Sean RUizNo Gravatar says:

    Thanks, this helped me out.

  2. andreiashNo Gravatar says:

    I’m glad it helped!

  3. VinodNo Gravatar says:

    Thanks a ton. 😀

  4. poliNo Gravatar says:

    This worked great!

Leave a Reply