PHP proporciona una función llamada " mkdir " que le permite crear un nuevo directorio. Un argumento opcional especifica el valor numérico de los permisos que se asignarán al nuevo directorio . Por ejemplo , los permisos de " 0777 " proporcionan leer, escribir y ejecutar el "dueño ", "grupo" y "otros". Hay varios casos en los que la asignación permiso con la "función mkdir " aparecerá como si no funciona debido a que el nuevo directorio no tiene los mismos permisos que pasa a la función . No se aplica a Windows
La lista de permisos de alimentación a la función " mkdir " son válidos sólo en sistemas de archivos basados en Linux . Esto significa que no se puede asociar permisos con un directorio que ha creado en Windows. Si pasa los permisos con la función " mkdir " en Windows , PHP simplemente los ignora .
Default User Account
Recuerde que una ejecución de un script en el servidor Web de el navegador se ejecuta bajo la cuenta de usuario predeterminada en el servidor web , tales como " www -data ", que no están bajo su cuenta de usuario . Si los permisos de directorio no están funcionando , puede ser porque usted está probando un script en su cuenta en lugar de la cuenta de usuario predeterminada . Puede probar el script como usuario predeterminado escribiendo "su www -data " y la exploración de los permisos de directorio asignados a ese usuario.
Directorio Máscara
Si los permisos resultantes de un nuevo directorio son diferentes de lo que ha pasado , puede ser debido a una máscara de directorio de aplicación a los permisos . La máscara es mantenido por el servidor Web , no por PHP . Para eludir la máscara , utilice la función " umask " para ajustar la máscara a cero , cree el directorio con " mkdir " y cambiar los permisos del directorio utilizando la función " chmod "
Por ejemplo : .
< php $ save = umask ( 0 ); if ( mkdir ($ newdir ) ) chmod ($ newdir , 0755 ) ; umask ($ guardar) ; ? >
< br > Asignación recursiva
La función " mkdir " toma un segundo argumento opcional que crea directorios anidados de forma recursiva. Al asignar permisos de directorio recursivamente , los permisos no se pueden ejecutar en el orden correcto y podría obtener resultados diferentes de lo que esperaba . Para garantizar el orden correcto , utilice la función "chmod " para asignar permisos de directorio al nuevo directorio después de crearlo con la función " mkdir "
Por ejemplo : .
< ¿ phpif ( mkdir ($ newdir , 0755 , true) ) chmod ($ newdir , 0755 ) ; ? >