Por favor, deje de sugerir el uso de 777. Usted está haciendo que su archivo sea grabable por todos, lo que significa que usted pierde toda la seguridad para la que fue diseñado el sistema de permisos. Si sugiere esto, piense en las consecuencias que puede tener en un servidor web mal configurado: sería increíblemente fácil "piratear" el sitio web sobrescribiendo los archivos. Entonces, no lo hagas
Michael: hay una razón perfectamente viable por la cual su script no puede crear el directorio, el usuario que ejecuta PHP (que podría ser diferente de Apache) simplemente no tiene suficientes permisos para hacerlo. En lugar de cambiar los permisos, creo que debería resolver el problema subyacente, lo que significa que sus archivos tienen el propietario incorrecto, o que Apache o PHP se están ejecutando bajo el usuario incorrecto.
Ahora, parece que tiene su propio servidor instalado. Puede determinar qué usuario está ejecutando PHP mediante la ejecución de un script simple que llama al programa 'whoami' instalado en la mayoría de Linuxes:
<?php
echo `whoami`;
Si todo es correcto, debería ver el nombre de usuario de PHP se ejecuta bajo. Dependiendo de su sistema operativo, esto podría ser 'www-data', 'nobody', 'http', o cualquier variación. Si su sitio web es el único sitio web en ejecución, esto es fácil de cambiar cambiando el usuario que Apache ejecuta. Si tiene Debian, como me gusta, puede editar el archivo/etc/apache2/envvars (como usuario root) y cambiar el valor de APACHE_RUN_USER. Dependiendo de su sistema operativo, esta variable puede estar configurado en un archivo de configuración diferente, por lo que si no lo encuentra en/etc/apache2/envvars, tratar de buscar la declaración de variables mediante el uso de:
$ grep -R "APACHE_RUN_USER=" .
De el directorio en el que se encuentran todos los archivos de Apache-config.
Si no es el único en el servidor, puede considerar crear cuentas de usuario para cada sitio web y usar algo como Apache2-MPM-ITK para cambiar el RUN_USER según el sitio web que se llame. Además, asegúrese de que el usuario con el que se ejecuta el proceso PHP es el propietario de los archivos y los directorios. Usted puede lograr que mediante el uso chown:
% chown theuser:theuser -R /var/www/website/
Si PHP está funcionando con su propio usuario, y es el propietario de los archivos y directorios que necesita para escribir en, el permiso 700 sería suficiente. Aunque tiendo a usar 750 para la mayoría de los archivos, dado que generalmente tengo múltiples usuarios en ese grupo, y pueden tener permisos de lectura.Por lo tanto, puede cambiar los permisos:
% chmod 0750 -R /var/www/website/
Eso debería ser. Si tiene algún problema, infórmenos, y , por favor, no tome el, nunca tome ningún consejo que esencialmente le diga: si la seguridad lo está molestando, elimine la seguridad.
¿Has probado con 771? ¿Quién es el propietario (usuario y grupo) de esta carpeta? – soju
http://www.computerhope.com/unix/uchmod.htm – Gaurav