Pregunta

Mi código

mkdir("/some/absolute/path",0777);

y

mkdir("relative/path", 0777);

es no trabajar, el modo seguro está apagado, e incluso he tratado de configurar todos los carpetas principales a 777.

¿Alguna idea?

EDITAR: Tengo el informe de errores activada, en mi frustración que he 777'd todo el camino sólo para asegurarse de que, ese no es el problema. Tiene que ser algo estúpidamente sencilla pasando.

Editar editar: upvotes para todos los que respondieron con sugerencias ... pero no voy a seleccionar una respuesta ya que esto todavía no se ha resuelto, pero por otra parte creo que esto va a ser uno de esos que quedan abiertas para siempre.

EDITAR x 3: Así que tengo la resolución más satisfactoria a esta pregunta siempre ... Empecé a una imagen de máquina virtual limpia con, vuelve a intentar y funciona ahora. No es broma.

¿Fue útil?

Solución

Usted está entre comillas el parámetro de nombre de ruta que falta.

Otros consejos

Hacer todos los directorios padre existe?

Si no es así, será necesario que habilite la recursividad (PHP5 asumiendo aquí):

mkdir('/path/to/your/dir',0777,true);

EDIT: No vi el comentario diciendo que oculta todos los directorios de var la baja se establece en permiso de escritura universal, así que apuesto a la ruta del directorio existe y lo anterior no será de ayuda. Lo sentimos!

¿Estás tratando de crear los directorios de forma recursiva, igual que lo haría con mkdir -p en la línea de comandos? Si es así, especifique true como tercer parámetro a mkdir .

Y sólo para eco de las sugerencias anteriores, especificar los mensajes de error que está recibiendo. Si usted no está recibiendo ninguna, use esto antes de su llamada:. error_reporting(-1); // ALL messages y ini_set('display_errors', 'On');

¿Has probado con el más corto posible prueba?

mkdir ( 'directorio', 0777);

Si esto no funciona, me gustaría probar la creación de un estándar como CHMOD 0755 (esto es una suposición totalmente al azar, tal vez el servidor no permitirá la creación de 0777 a través de PHP)

Si esto no funciona Yo diría que el servidor probablemente necesitan diferentes / php doesn' thave la derecha que escriben en la carpeta, tal vez usted podría preguntar a su proveedor de alojamiento de configuración?

Tengo un problema similar y descubrí, que no tengo espacio libre a la izquierda en mi unidad. Consulte con df de comandos (en Linux) lo lleno que es la unidad. Es posible que se le permite root para crear archivos y carpetas en esta situación, ya que dispone de espacio para pre-reservado. Si se ejecuta script desde la línea de comandos como usuario root - no hay error, pero si la secuencia de comandos se ejecuta por apache, entonces aparecer dentro de error

.

Si alguien se atasca con este problema .. hay una respuesta que puedo dar ese paso 2 horas en encontrar .. Probé con el uso de una ruta completa, y "../ mydirectoryname".

Trate de usar:

mkdir("./mydirectoryname", 0777, true);

En lugar de ..

mkdir("../mydirectoryname", 0777, true);

Para referencias futuras, el problema podría venir de la posibilidad de que el directorio en el que está tratando de crear un nuevo directorio no tiene suficiente permiso.

Por ejemplo, el directorio de índice podría tener este aspecto: index.php new_dirs_here

Si new_dirs_here no tiene suficiente permiso entonces no se puede crear direcories interior.

Para resolver esto, tendría que utilizar el comando: chmod 777 new_dirs_here

No estoy preocuparse por la seguridad ahora, sólo tratar de resolver el problema inmediato. Se podría, por supuesto, buscar una mejor configuración de permisos, pero la idea es que su new_dirs_here debe tener suficientes permisos.

A continuación, el dunction mkdir() debería funcionar bien.

Buena suerte

Debe tener el atributo entre comillas:

mkdir('path/to/your/dir','0777');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top