Configurar la propiedad y los permisos del archivo
En este tema se explica cómo establecer permisos de lectura y escritura para el grupo de servidores web antes de instalar Adobe Commerce. Esto es necesario para que la línea de comandos pueda escribir archivos en el sistema de archivos.
El procedimiento que utilice es diferente, dependiendo de si usa alojamiento compartido y tiene un usuario o si usa un servidor privado y tiene dos usuarios.
Definir permisos para un usuario en un alojamiento compartido
En esta sección se explica cómo establecer permisos previos a la instalación si inicia sesión en el servidor de aplicaciones con el mismo usuario que también ejecuta el servidor web. Este tipo de configuración es común en entornos de alojamiento compartido.
Para establecer permisos antes de instalar la aplicación:
-
Inicie sesión en el servidor de aplicaciones.
-
Utilice una aplicación de administrador de archivos proporcionada por el proveedor de alojamiento compartido para comprobar que los permisos de escritura están establecidos en los siguientes directorios:
vendor
(instalación del compositor o del archivo comprimido)app/etc
pub/static
var
generated
- Cualquier otro recurso estático
-
Si tiene acceso desde la línea de comandos, introduzca los siguientes comandos en el orden mostrado:
code language-bash cd <app_root>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} +
code language-bash chmod u+x bin/magento
Para especificar opcionalmente todos los comandos en una línea, escriba lo siguiente suponiendo que la aplicación esté instalada en
/var/www/html/magento2
:code language-bash cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod u+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod u+w {} + && chmod u+x bin/magento
-
Si aún no lo ha hecho, obtenga la aplicación de una de las siguientes maneras:
-
Después de establecer la propiedad y los permisos del sistema de archivos, instale la aplicación
Establecer la propiedad y los permisos para dos usuarios
En esta sección se explica cómo establecer la propiedad y los permisos para su propio servidor o para una configuración de alojamiento privada. En este tipo de configuración, normalmente no puede iniciar sesión como usuario del servidor web o cambiar a él. Normalmente, se inicia sesión como un usuario y se ejecuta el servidor web como un usuario diferente.
Para establecer la propiedad y los permisos para un sistema de dos usuarios:
Complete las siguientes tareas en el orden mostrado:
- Acerca del grupo compartido
- Cree el propietario del sistema de archivos y proporcione al usuario una contraseña segura
- Busque el grupo del usuario del servidor web
- Coloque el propietario del sistema de archivos en el grupo de servidores web
- Obtener el software
- Establecer la propiedad y los permisos para el grupo compartido
Acerca del grupo compartido
Para permitir que el servidor web escriba archivos y directorios en el sistema de archivos, pero también para mantener la propiedad del propietario del sistema de archivos, ambos usuarios deben estar en el mismo grupo. Esto es necesario para que ambos usuarios puedan compartir el acceso a los archivos (incluidos los archivos creados con el administrador u otras utilidades basadas en la web).
En esta sección se explica cómo crear un propietario del sistema de archivos y colocar a ese usuario en el grupo del servidor web. Si lo desea, puede utilizar una cuenta de usuario existente; por motivos de seguridad, le recomendamos que disponga de una contraseña segura.
Cree el propietario del sistema de archivos y proporcione al usuario una contraseña segura
En esta sección se explica cómo crear el propietario del sistema de archivos. (el propietario del sistema de archivos es otro término para usuario de línea de comandos.)
Para crear un usuario en CentOS o Ubuntu, introduzca el siguiente comando como usuario con privilegios de root
:
adduser <username>
Para dar al usuario una contraseña, escriba el siguiente comando como usuario con privilegios de root
:
passwd <username>
Siga las indicaciones de la pantalla para crear una contraseña de usuario.
root
en el servidor de aplicaciones, puede utilizar otra cuenta de usuario local. Asegúrese de que el usuario tenga una contraseña segura y continúe con Coloque al propietario del sistema de archivos en el grupo de servidores web.Por ejemplo, para crear un usuario denominado magento_user
y darle una contraseña, escriba:
sudo adduser magento_user
sudo passwd magento_user
Búsqueda del grupo de usuarios del servidor web
Para buscar el grupo del usuario del servidor web:
-
CentOS:
code language-bash grep -E -i '^user|^group' /etc/httpd/conf/httpd.conf
o
code language-bash grep -Ei '^user|^group' /etc/httpd/conf/httpd.conf
Normalmente, el nombre de usuario y el nombre de grupo son apache
.
- Ubuntu:
ps aux | grep apache
para encontrar el usuario Apache ygroups <apache user>
para encontrar el grupo.
Normalmente, el nombre de usuario y el nombre de grupo son www-data
.
Coloque el propietario del sistema de archivos en el grupo de servidores web
Para colocar al propietario del sistema de archivos en el grupo principal del servidor web (suponiendo el nombre de grupo Apache típico para CentOS y Ubuntu), introduzca el siguiente comando como usuario con privilegios root
:
- CentOS:
usermod -a -G apache <username>
- Ubuntu:
usermod -a -G www-data <username>
-a -G
son importantes porque agregan apache
o www-data
como un grupo secundario a la cuenta de usuario, lo que conserva el grupo principal del usuario. Añadir un grupo secundario a una cuenta de usuario ayuda a restringir la propiedad y los permisos de los archivos para garantizar que los miembros de un grupo compartido solo tengan acceso a ciertos archivos.Por ejemplo, para agregar el usuario magento_user
al grupo principal apache
en CentOS:
sudo usermod -a -G apache magento_user
Para confirmar que el usuario es miembro del grupo de servidores web, introduzca el siguiente comando:
groups magento_user
El siguiente resultado de ejemplo muestra los grupos principal (magento
) y secundario (apache
) del usuario.
magento_user : magento_user apache
Para completar la tarea, reinicie el servidor web:
- Ubuntu:
service apache2 restart
- CentOS:
service httpd restart
Obtener el software
Si aún no lo ha hecho, obtenga el software de una de las siguientes maneras:
Establecer la propiedad y los permisos para el grupo compartido
Para establecer la propiedad y los permisos antes de instalar la aplicación:
-
Inicie sesión en el servidor de aplicaciones como propietario del sistema de archivos o cambie a.
-
Introduzca los siguientes comandos en el orden mostrado:
code language-bash cd <app_root>
code language-bash find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
code language-bash find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
code language-bash chown -R :<web server group> .
code language-bash chmod u+x bin/magento
Para especificar opcionalmente todos los comandos en una línea, escriba lo siguiente suponiendo que la aplicación esté instalada en /var/www/html/magento2
y que el nombre del grupo de servidores web sea apache
:
cd /var/www/html/magento2 && find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chown -R :apache . && chmod u+x bin/magento
En el sistema de archivos de evento, los permisos se establecen incorrectamente y el propietario del sistema de archivos no puede cambiarlos. Puede escribir el comando como usuario con privilegios de root
:
cd /var/www/html/magento2 && sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && sudo chown -R :apache . && sudo chmod u+x bin/magento
Cambiar al propietario del sistema de archivos
Después de haber realizado las demás tareas de este tema, escriba uno de los siguientes comandos para cambiar a ese usuario:
- Ubuntu:
su <username>
- CentOS:
su - <username>
Por ejemplo,
su magento_user