PHP kopyalama fonksiyonu ve Apache grubu

0 Cevap php

Ben alt-dizinleri yeni üyeleri için, bunu yapmak için PHP kopyalama işlevini kullanarak ediyorum bazı php dosyaları oluşturmak bir web uygulaması var, ancak üyelerinin web sayfaları 500 Internal Server Error veriyor, ve FTP ile yüklenen eğer script iyi çalışıyor hosting hesabı veya root hesabı ile.

"Root root" grubu ile dosya yükleme sonra, dosyaların iyi çalışıyor çünkü ben, sorunun "apache apache" grubu ile olduğunu düşünüyorum, lütfen yardım!

Bu kullanıcıların olanlar benim dizindeki tüm dosyaları kopyalamak için kullanılan işlevi:

function smartCopy($source, $dest, $options=array('folderPermission'=>0775,'filePermission'=>0775)) 
    { 
        $result=false; 

        if (is_file($source)) { 
            if ($dest[strlen($dest)-1]=='/') { 
                if (!file_exists($dest)) { 
                    cmfcDirectory::makeAll($dest,$options['folderPermission'],true); 
                } 
                $__dest=$dest."/".basename($source); 
            } else { 
                $__dest=$dest; 
            } 
            $result=copy($source, $__dest); 
            chmod($__dest,$options['filePermission']); 

        } elseif(is_dir($source)) { 
            if ($dest[strlen($dest)-1]=='/') { 
                if ($source[strlen($source)-1]=='/') { 
                    //Copy only contents 
                } else { 
                    //Change parent itself and its contents 
                    $dest=$dest.basename($source); 
                    @mkdir($dest); 
                    chmod($dest,$options['filePermission']); 
                } 
            } else { 
                if ($source[strlen($source)-1]=='/') { 
                    //Copy parent directory with new name and all its content 
                    @mkdir($dest,$options['folderPermission']); 
                    chmod($dest,$options['filePermission']); 
                } else { 
                    //Copy parent directory with new name and all its content 
                    @mkdir($dest,$options['folderPermission']); 
                    chmod($dest,$options['filePermission']); 
                } 
            } 

            $dirHandle=opendir($source); 
            while($file=readdir($dirHandle)) 
            { 
                if($file!="." && $file!="..") 
                { 
                     if(!is_dir($source."/".$file)) { 
                        $__dest=$dest."/".$file; 
                    } else { 
                        $__dest=$dest."/".$file; 
                    } 
                    //echo "$source/$file ||| $__dest<br />"; 
                    $result=smartCopy($source."/".$file, $__dest, $options); 
                } 
            } 
            closedir($dirHandle); 

        } else { 
            $result=false; 
        } 
        return $result; 
    }

Dikkat: izinleri ile hiçbir sorun vardır.

0 Cevap