unlink from apache2.inc.php

Discussion in 'Developers' Forum' started by tom123, Jan 7, 2013.

  1. tom123

    tom123 Member

    This:

    Code:
    $app->system->unlink
    
    doesn't work properly.
    No file/symlinks are deleted.

    Changing that to a plain "unlink" will delete properly.

    The issue is present in the whole file. I had to change that call everywhere in the plugin.
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    The function works fine, there is a problem in your setup if the function does not remove files. There shall be no symlinks in the real path of a website, so the path /var/www/clients/client1/web1/ may not contain a symlink. If a symlink is detected somewhere in the path, the unlink function has to refuse the removal.

    If you moved e.g. /var/www to another disk on your server, then use mount bind instaed of a symlink to point the directory tree to the new location.
     
  3. tom123

    tom123 Member

    It's not only a symlink removal issue.
    Even the PHP-FPM pools are not removed and also apache virtualhosts.

    The same script but with the plain "unlink" instead the origianl function works perfectly
     
  4. tom123

    tom123 Member

    I don't think that your code works:

    Code:
    	function unlink([B]$file[/B]) {
    		if(file_exists([B]$filename[/B])) {
    			return unlink([B]$filename[/B]);
    		}
    	}
    
     
  5. till

    till Super Moderator Staff Member ISPConfig Developer

    Thats not code form 3.0.5 RC1. Download the 3.0.5 RC1 tar.gz, unpack it and take a look into the system.inc.php file in server/lib/classes/. The code of this function is:

    Code:
    function unlink($filename) {
    		if(file_exists($filename) || is_link($filename)) {
    			return unlink($filename);
    		}
    	}
    
     
  6. tom123

    tom123 Member

    It's the same variation that i've made manually.
    Probably i'm using a little bit outdated version
     

Share This Page