Configurar a propriedade e as permissões do arquivo

Este tópico discute como definir permissões de leitura e gravação para o grupo de servidores Web antes de instalar o Adobe Commerce. Isso é necessário para que a linha de comando possa gravar arquivos no sistema de arquivos.

O procedimento usado é diferente, dependendo se você usa hospedagem compartilhada e tem um usuário ou se usa um servidor privado e tem dois usuários.

Definir permissões para um usuário na hospedagem compartilhada

Esta seção discute como definir permissões de pré-instalação se você efetuar login no servidor de aplicativos como o mesmo usuário que também executa o servidor Web. Esse tipo de configuração é comum em ambientes de hospedagem compartilhados.

Para definir permissões antes de instalar o aplicativo:

  1. Faça logon no servidor de aplicativos.

  2. Use um aplicativo gerenciador de arquivos fornecido pelo seu provedor de hospedagem compartilhada para verificar se as permissões de gravação estão definidas nos seguintes diretórios:

    • vendor (Instalação do Composer ou do arquivo compactado)
    • app/etc
    • pub/static
    • var
    • generated
    • Quaisquer outros recursos estáticos
  3. Se você tiver acesso à linha de comando, insira os seguintes comandos na ordem mostrada:

    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 inserir opcionalmente todos os comandos em uma linha, insira o seguinte supondo que o aplicativo esteja instalado em /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
    
  4. Se ainda não tiver feito isso, obtenha o aplicativo de uma das seguintes maneiras:

  5. Após definir a propriedade e as permissões do sistema de arquivos, instale o aplicativo

NOTE
Para restringir ainda mais as permissões após a instalação do aplicativo, você pode configurar uma máscara.

Definir propriedade e permissões para dois usuários

Esta seção discute como definir a propriedade e as permissões de seu próprio servidor ou de uma configuração de hospedagem privada. Neste tipo de instalação, você normalmente não pode fazer login como, ou mudar para, o usuário do servidor Web. Normalmente, você faz logon como um usuário e executa o servidor Web como um usuário diferente.

Para definir a propriedade e as permissões de um sistema de dois usuários:

Conclua as seguintes tarefas na ordem mostrada:

Sobre o grupo compartilhado

Para permitir que o servidor Web grave arquivos e diretórios no sistema de arquivos, mas também para manter a propriedade pelo proprietário do sistema de arquivos, ambos os usuários devem estar no mesmo grupo. Isso é necessário para que ambos os usuários possam compartilhar acesso a arquivos (incluindo arquivos criados usando o Administrador ou outros utilitários baseados na Web).

Esta seção discute como criar um proprietário do sistema de arquivos e colocar esse usuário no grupo do servidor Web. Se desejar, você poderá usar uma conta de usuário existente; recomendamos que o usuário tenha uma senha forte por motivos de segurança.

NOTE
Pule para Localize o grupo de usuários do servidor Web se planeja usar uma conta de usuário existente.

Crie o proprietário do sistema de arquivos e forneça ao usuário uma senha forte

Esta seção discute como criar o proprietário do sistema de arquivos. (o proprietário do sistema de arquivos é outro termo para o usuário da linha de comando.)

Para criar um usuário no CentOS ou Ubuntu, digite o seguinte comando como um usuário com privilégios root:

adduser <username>

Para fornecer uma senha ao usuário, digite o seguinte comando como um usuário com privilégios de root:

passwd <username>

Siga as instruções na tela para criar uma senha para o usuário.

WARNING
Se você não tiver privilégios de root no servidor de aplicativos, poderá usar outra conta de usuário local. Verifique se o usuário tem uma senha forte e continue com Coloque o proprietário do sistema de arquivos no grupo de servidores Web.

Por exemplo, para criar um usuário chamado magento_user e fornecer uma senha ao usuário, digite:

sudo adduser magento_user
sudo passwd magento_user
WARNING
Como o objetivo da criação deste usuário é fornecer segurança adicional, certifique-se de criar uma senha forte.

Localizar o grupo de usuários do servidor Web

Para localizar o grupo do usuário do servidor Web:

  • CentOS:

    code language-bash
    grep -E -i '^user|^group' /etc/httpd/conf/httpd.conf
    

    ou

    code language-bash
    grep -Ei '^user|^group' /etc/httpd/conf/httpd.conf
    

Normalmente, o nome do usuário e do grupo são apache.

  • Ubuntu: ps aux | grep apache para encontrar o usuário Apache, então groups <apache user> para encontrar o grupo.

Normalmente, o nome de usuário e o nome do grupo são ambos www-data.

Colocar o proprietário do sistema de arquivos no grupo de servidores Web

Para colocar o proprietário do sistema de arquivos no grupo principal do servidor Web (supondo o nome de grupo típico do Apache para CentOS e Ubuntu), digite o seguinte comando como usuário com privilégios root:

  • CentOS: usermod -a -G apache <username>
  • Ubuntu: usermod -a -G www-data <username>
NOTE
As opções -a -G são importantes porque adicionam apache ou www-data como um grupo secundário à conta de usuário, o que preserva o grupo primário do usuário. Adicionar um grupo secundário a uma conta de usuário ajuda a restringir a propriedade e as permissões do arquivo para garantir que os membros de um grupo compartilhado tenham acesso somente a determinados arquivos.

Por exemplo, para adicionar o usuário magento_user ao grupo principal apache no CentOS:

sudo usermod -a -G apache magento_user

Para confirmar se o usuário é membro do grupo de servidores Web, digite o seguinte comando:

groups magento_user

O exemplo de resultado a seguir mostra os grupos primário (magento) e secundário (apache) do usuário.

magento_user : magento_user apache
NOTE
Normalmente, o nome de usuário e o nome do grupo principal são iguais.

Para concluir a tarefa, reinicie o servidor Web:

  • Ubuntu: service apache2 restart
  • CentOS: service httpd restart

Obter o software

Se ainda não tiver feito isso, obtenha o software de uma das seguintes maneiras:

Definir propriedade e permissões para o grupo compartilhado

Para definir a propriedade e as permissões antes de instalar o aplicativo:

  1. Efetue login no servidor de aplicativos como, ou alterne para, o proprietário do sistema de arquivos.

  2. Digite os seguintes comandos na ordem mostrada:

    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 inserir opcionalmente todos os comandos em uma linha, insira o seguinte supondo que o aplicativo esteja instalado em /var/www/html/magento2 e o nome do grupo de servidores Web seja 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

Caso as permissões do sistema de arquivos sejam definidas incorretamente e não possam ser alteradas pelo proprietário do sistema de arquivos, você pode inserir o comando como um usuário com root privilégios:

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

Alternar para o proprietário do sistema de arquivos

Após executar as outras tarefas neste tópico, insira um dos seguintes comandos para alternar para esse usuário:

  • Ubuntu: su <username>
  • CentOS: su - <username>

Por exemplo,

su magento_user
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995