Esta es el arreglo más correcta que te podemos compartir, pero primero obsérvala pausadamente y valora si se puede adaptar a tu proyecto.
Solución:
Respuesta rápida:
Por razones de seguridad, mantengamos root
como propietario y solo permitirnos leer, escribir y ejecutar dentro del área en la que trabajaremos.
-
Cambiar directorios
cd /var/www/
-
Cambiar la propiedad del grupo
sudo chown -Rv root:$USER .
-
Agregar privilegios a nuestro grupo
sudo chmod -Rv g+rw .
-
Para el gran final, sigue adelante y crea tu nuevo proyecto de laravel
composer create-project laravel/laravel
nombre del proyecto--prefer-dist
Enhorabuena, hemos terminado. 🙂
Explicación detallada
Explicación detrás de la solución:
Por defecto tienes dos usuarios; root
y $USER
(esta es la variable global, pero el nombre real es lo que ponga como nombre de usuario). Cada usuario creado viene con un grupo también. Así que si mi nombre de usuario es john
tengo un grupo llamado john
. Hay muchas maneras de resolver este problema, pero prefiero esta ruta por varias razones:
-
Todavía quiero
root
ser el propietario de los archivos por razones de seguridad. -
Estoy trabajando en un host local, por lo que no debería haber ningún otro usuario (invitado) escribiendo en mis archivos.
Para lograr esto, necesitaremos editar la propiedad del grupo y agregar los permisos adecuados. dejaremos el others
como está y solo les permite leer y ejecutar los archivos.
Entonces empecemos:
-
Me gusta estar en el directorio en el que estoy haciendo cambios para evitar errores, así que primero debemos ingresar al directorio en el que trabajaremos.
cd /var/www/
-
Tendremos que cambiar la propiedad del grupo de los directorios en los que trabajaremos. Comenzando desde el directorio en el que estamos y todos los directorios y archivos futuros que crearemos debajo de este directorio. Básicamente, todos los directorios secundarios de ahora en adelante serán propiedad de nuestro grupo.
sudo chown -Rv root:$USER .
chown
= comando para chángel propioejem.
-R
= Recursivo: básicamente indica ejecutar el mismo comando en todos los directorios dentro de este directorio.
-v
= detallado: declaramos aquí para mantenernos actualizados al mostrarnos lo que realmente está sucediendo.
root:$USER
= Aquí es donde estamos configurando la propiedad. La primera palabra antes de los dos puntos (:) indica elroot
será el único dueño. La segunda palabra después de los dos puntos (:) indica que el propietario del grupo será$USER
(el usuario actual).
.
= Esto solo significa ‘aquí, en este directorio’.
- Ahora vamos a agregar los privilegios correctos a nuestro grupo. Tenga en cuenta que aquí es donde permitimos
root
ser el propietario principal mientras SOLO nos permitimos a nosotros mismos crear cambios (por supuesto, ademásroot
). Como mencioné antes, esto no permite que otros usuarios creen ningún cambio.
sudo chmod -Rv g+rw .
chmod
= comando para chángel modificaciónficaciones, en este caso, privilegios.
-Rv
= Recursivo y Verboso
g
= esto indica quién recibirá las modificaciones. En nuestro caso g-group Otras opciones son u-user y o-other.
+
= simboliza agregar
r
= simboliza leer
w
= simboliza escribir
- Ahora hemos terminado. Intente crear un nuevo proyecto de laravel.
composer create-project laravel/laravel
nombreProyecto` –prefer-dist
Nota: Si esto no funciona, ingrese el comando ls -al | grep $USER
mientras que dentro de la /var/www/
directorio.
Si obtienes esto:
drwxrw-r-x
Te falta el ejecutable (x
) privilegio para el grupo. El primero x
es para el usuario y último x
es para otros debe haber medio x
para el grupo
Ejecute el siguiente comando y debería estar listo para comenzar:
sudo chmod -Rv g+x .
Ahora si corres ls -al | grep $USER
debe obtener:
drwxrwxr-x
-
agregue el grupo “www” y agregue su usuario a este grupo
sudo groupadd www sudo usermod -a -G www ec2-user
-
cerrar sesión/iniciar sesión
-
establecer la propiedad y los permisos de escritura
sudo chown -R root:www /var/www sudo chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 + find /var/www -type f -exec sudo chmod 0664 +
Referencia: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html
Me encontré con una ErrorException similar al crear un proyecto adicional dentro del entorno Homestead/Vagrant. Anteriormente había agregado carpetas y rutas a Homestead.yaml.
Las respuestas de Oscar y Jens A. Koch apuntaban en la dirección correcta, pero van demasiado lejos en mi máquina de desarrollo.
Solución de trabajo más estrecha dentro de Homestead-Box:
sudo mkdir
sudo chgrp vagrant
sudo chmod g+wx
composer create-project --prefer-dist laravel/laravel
Sección de Reseñas y Valoraciones
Si sostienes alguna vacilación o disposición de ascender nuestro sección puedes ejecutar una reseña y con placer lo leeremos.