PHP fornisce una funzione chiamata " mkdir " che consente di creare una nuova directory . Un argomento opzionale specifica il valore numerico delle autorizzazioni da assegnare alla nuova directory . Ad esempio , i permessi di " 0777 " forniscono lettura, scrittura ed esecuzione per il "proprietario ", "gruppo " e "altro". Ci sono diversi casi in cui l'assegnazione di permessi con la "funzione mkdir " apparirà come se non funziona perché la nuova directory non ha le stesse autorizzazioni si passati alla funzione . Non applicabile a Windows
L'elenco dei permessi che fornite alla funzione " mkdir " sono validi solo su file system basati su Linux . Questo significa che non è possibile associare i permessi con una directory da voi creata sotto Windows . Se si passa autorizzazioni con la funzione " mkdir " sotto Windows , PHP semplicemente li ignora .
Default User Account
Ricordate che un run script su un server Web un browser viene eseguito con l' account utente predefinito sul server Web, ad esempio " www-data ", non con il proprio account utente . Se le autorizzazioni di directory non funzionano , è possibile che si sta testando uno script con il proprio account anziché l'account utente predefinito . È possibile testare lo script come utente predefinito digitando "su www -data" ed esplorare le autorizzazioni sulla directory assegnate a tale utente .
Directory Maschera
< p > Se le autorizzazioni risultanti di una nuova directory sono diversi da quello che hai passato , può essere causa di una maschera di directory applicata ai permessi . La maschera è mantenuta dal server Web , non da PHP. Per aggirare la maschera , utilizzare la funzione " umask " per impostare la maschera a zero, creare la directory con " mkdir " e modificare le autorizzazioni sulla directory con la funzione " chmod "
Per esempio : .
< php $ save = umask ( 0); ? if ( mkdir ( $ newdir ) ) chmod ( $ newdir , 0755 ) ; umask ( $ sAVE); ? >
< br > ricorsiva Assegnazione
La funzione " mkdir " prende un secondo argomento opzionale che crea directory nidificate in modo ricorsivo. Quando si assegnano le autorizzazioni di directory ricorsivamente , le autorizzazioni non possono essere eseguite nell'ordine corretto e si potrebbero ottenere risultati diversi da quello che ti aspettavi . Per garantire l'ordine corretto , utilizzare la funzione " chmod " per assegnare le autorizzazioni di directory per la nuova directory dopo averla creata con la funzione " mkdir "
Per esempio : .
< ? phpif ( mkdir ( $ newdir , 0755 , true) ) chmod ( $ newdir , 0755 ) ; ? >