2010-09-24 21 views
0

N'a pas eu de chance de trouver une réponse sur google, donc c'est mon dernier essai avant d'essayer d'autres méthodes.php crée un dossier avec 341 permissions

J'ai un script comme celui-ci:

 // get current year and month 
     $cur_year = date('Y'); 
     $cur_month = date('m'); 
     $long_type = $this->getFile_longtype(); 

     $folder = $_SERVER['DOCUMENT_ROOT']."/".FOLDER_CMS."/uploads/$long_type/$cur_year/$cur_month"; 

     // check whether the folder exists 
     if(!is_dir($folder)){ 

      // try to make the folder recursively 
      if(!mkdir($folder,"0777",true)){ 

       logError($message, __FILE__, __LINE__); 
       throw new Exception("Failure creating proper directories"); 

      } 

     } 

pour le faire fonctionner, je chmod'ed le uploads et tous ses fichiers et dirs à 777

La longue (Beter suggestion?) type évalue à 'images' et c'est un répertoire a déjà été créé sur le serveur.

Maintenant, le script crée le dossier nommé avec l'année avec les permissions 341. Ce n'est pas ce que je veux parce qu'il met fin à l'accumulation de dossiers récursifs ou bloque son contenu de moi.

Une aide ou des suggestions?

version php: 5.2.5

commande configure: './configure' '--enable-bcmath' '--enable-calendrier' '--enable-exif' « - enable-ftp '' --enable-gd-native-ttf '' --enable-libxml '' --enable-magic-quotes '' --enable-mbstring '' --enable-pdo = partagé '' - enable-soap '' --enable-sockets '' --enable-wddx '' --enable-zip '' --prefix =/usr/local '' --avec-apxs2 =/usr/local/apache/bin/apxs '' --with-bz2 '' --with-curl =/opt/curlssl/'' --avec-curlwrappers '' --with-freetype-dir =/usr '' --with-gd '' --with-gettext '' --with-imap =/opt/php_avec_client_client/'' --with-imap-ssl =/usr '' --avec-jpeg-dir =/usr '' --with-kerberos ' '--with-libexpat-dir =/usr' '--with-libxml-dir =/opt/xml2 '' --with-libxml-dir =/opt/xml2/'' --with-mcrypt =/opt/libmcrypt/'' --with-mhash =/opt/mhash/'' --avec-mssql =/usr/local/freetds '' --with-mysql =/usr '' --avec-mysql-sock =/var/lib/mysql/mysql.sock '' --avec-mysqli =/usr/bin/mysql_config '' --with-openssl =/usr '' --with-openssl-dir =/usr '' --with-pdo-mysql = partagé '' --with-pdo-sqlite = partagé '' --avec -png-dir =/usr '' --with-pspell '' --with-sqlite = partagé '' --with-tidy =/opt/tidy/'' --with-ttf '' --with-xmlrpc '' --with-xpm-dir =/usr '' --with-xsl =/opt/xslt/'' --avec-zlib '' --avec-zlib-dir =/usr '

Répondre

2

Ne pas utiliser la chaîne « 0777 », utilisez 0777.

+0

Alex, vous rock! –

0

les autorisations réelles dépendent du paramètre mkdir et du umask. Le umask est soustrait des permissions accordées à mkdir. Essayez de mettre votre umask à 0 avant de faire le mkdir.

+0

cela n'a rien changé sauf que les permissions ont changé de 341 à 441 ou quelque chose comme ça. –

1

Comme mentionné par Alex, supposons que vous d'entrer la valeur octale pas une chaîne aussi, pour des raisons de sécurité ne donnent l'autorisation complète aux dossiers utilisent à la place.

+0

thx pour la suggestion de sécurité! –

+0

Correction: jamais! = Plus récent – Geekster

+0

quelle permission dois-je donner aux fichiers que je vais stocker dans ces dossiers? –