Pregunta

Estoy usando la función PHP mkdir ($ ruta, 0777) para crear un nuevo directorio en un servidor Apache (que se ejecuta en Windows).

Cuando creo esto y ver las carpetas, Windows ha establecido el directorio como de sólo lectura. ¿Hay una manera de cambiar esto sin usar exec () para Cacls.exe? La documentación de PHP establece que chmod () no funciona en Windows, pero no dice nada acerca de un método de sustitución.

Google parece ser un poco inútil en este caso.

EDIT: Después de varios minutos hablando con los administradores de mi institución educativa de dos bits, parece que su servidor PHP prueba para los estudiantes se ejecuta fuera de una unidad USB. Tengo la sensación de que esto tenga algo que ver con ella hiera la cabeza

¿Fue útil?

Solución

La siguiente:

<?php
mkdir( "foo" )
?>

(obsérvese que no hay modo especificado) que funciona para mí en Win2K -. Crea una carpeta sin atributos establecidos

Editar Sólo tenía un pensamiento - no podía ser algo que ver con los permisos? Pruebe a ejecutar el código anterior de la línea de comandos y ver lo que sucede:

C:> c:\php\pgp.exe
    <?php
    mkdir( "foo" )
    ?>
    ^Z

Otros consejos

De acuerdo con la documentación de PHP, el parámetro de modo se ignora por completo en Windows (pero pasará al 0777, por lo que no tendría que especificar todos modos). Trate de no especificar el modo en absoluto y ver qué pasa. Tal vez se mete algo?

Estoy utilizando php y en cakephp para las ventanas como mkdir ( "mi nombre dir", 0777, true); Está bien trabajando para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top