![Permisos de servidor PHP para archivos y directorios concedidos, pero aún no permitidos](https://rvso.com/image/1447624/Permisos%20de%20servidor%20PHP%20para%20archivos%20y%20directorios%20concedidos%2C%20pero%20a%C3%BAn%20no%20permitidos.png)
Tengo un código php en Codeanywhere donde simplemente intento crear un archivo en el servidor pero aparece el siguiente error:
"Advertencia: fopen(file.txt): no se pudo abrir la secuencia: permiso denegado en /home/cabox/workspace/index.php en la línea 312"
Yo uso fopen ($file, 'w'). con 'r' como parámetro, funciona.
Le pregunté a CodeAnywhere si existían restricciones para evitar que los usuarios tuvieran código capaz de crear archivos directamente en el servidor, pero me respondieron que no había restricciones y que solo tenía que buscar cómo otorgar permisos.
Chmod usado por primera vez tanto para archivos como para directorios
chmod 755 index.php (después 777 para fines experimentales)
Sin embargo, todavía me enfrento al mensaje de error que se muestra arriba. Así que indagué en los permisos en cada nivel del servidor y los mostré a continuación, pero no veo nada extraño (según mi escaso conocimiento).
/
[cabox@box-codeanywhere /]$ ls -ld
drwxr-xr-x 21 raíz raíz 4096 19 de abril 03:09
/hogar/
[cabox@box-codeanywhere home]$ ls -ld
drwxr-xr-x 3 raíz raíz 4096 16 de junio de 2014
/home/cabox/
[cabox@box-codeanywhere ~]$ ls -ld
drwxrwxrwx 7 cabox cabox 4096 14 de abril a las 11:48
/home/cabox/espacio de trabajo/
[cabox@box-codeanywhere workspace]$ ls -ld
drwxrwxrwx 4 cabox cabox 4096 19 de abril 04:27
No puedo cambiar los permisos para/como es el nombre de usuarioraíz Me imagino que es porque mi nombre de usuario escabox
[cabox@box-codeanywhere espacio de trabajo]$ id
uid=500(cabox) gid=500(cabox) groups=500(cabox)
index.php intentando crear file.txt se encuentra en/home/cabox/espacio de trabajo/
-rwxrwxrwx 1 cabox cabox 18608 19 de abril 05:12 index.php
¿Qué estoy haciendo mal?
¡Gracias de antemano!
Respuesta1
Después de mucha experimentación, descubrí que había configurado el entorno de desarrollo de mi máquina virtual como Html5 y no como php. Los archivos php funcionaban correctamente ya que el servidor era Apache, pero por alguna razón que aún se me escapa, la gestión de permisos es diferente.
Después de cambiar el entorno a PHP, los comandos que antes no funcionaban sí lo hicieron y finalmente pude resolver el problema.
Aquí está la "solución" que hay que tomar con cautela ya que mi conocimiento en la materia es bastante limitado.
Darle a su propio usuario (cabox) el derecho 775 no hace nada, ya que solo el usuario 'www-data' tiene derecho a crear, modificar y eliminar archivos en el servidor, cuando se ejecuta el sitio web.
sudo chown -R www-data:www-data /home/cabox/workspace chmod 775 /home/cabox/workspace
esto funcionó.
Ahora, en codeanywhere, si cambio el nombre de usuario a 'www-data', pierdo la capacidad de trabajar en el servidor, crear, modificar y eliminar archivos. Pensé que la solución era establecer los derechos como usuario (cabox) y grupo (www-data) y darles los mismos derechos, pero hasta ahora eso no ha funcionado, así que todavía necesito resolver ese bit.
Espero que ayude a las personas que se encontrarán con el mismo problema en el futuro. Me tomó una semana, bastante frustrante :)
Respuesta2
Es posible que desee cambiar el propietario del archivo o directorio
nombre de usuario chown -R su carpeta
. Tuve el mismo problema y esto solucionó mi problema.
Respuesta3
Tal vez esto podría funcionar, estaba teniendo el mismo problema y después de 3 horas de Google intenté esto:
Permiso de carpeta
Lo último y último que debe hacer para completar la instalación es configurar los permisos de la carpeta. Para hacer esto, abra su línea de comando y escriba:
sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chown -R vm_username:www-data ~/workspace
al menos para mí, resolvió el problema de permisos que estaba teniendo.