Configuration de la propriété et des autorisations de fichier

Cette rubrique explique comment définir des autorisations de lecture-écriture pour le groupe de serveurs web avant d’installer Adobe Commerce. Cela est nécessaire afin que la ligne de commande puisse écrire des fichiers dans le système de fichiers.

La procédure que vous utilisez est différente, selon que vous utilisez l'hébergement partagé et que vous utilisez un utilisateur ou un serveur privé et que vous avez deux utilisateurs.

Définition des autorisations pour un utilisateur sur l’hébergement partagé

Cette section explique comment définir les autorisations de pré-installation si vous vous connectez au serveur d’applications en tant qu’utilisateur exécutant également le serveur web. Ce type de configuration est courant dans les environnements d’hébergement partagés.

Pour définir les autorisations avant d’installer l’application :

  1. Connectez-vous à votre serveur d’applications.

  2. Utilisez une application de gestionnaire de fichiers fournie par votre fournisseur d’hébergement partagé pour vérifier que les autorisations d’écriture sont définies sur les répertoires suivants :

    • vendor (installation du compositeur ou de l’archive compressée)
    • app/etc
    • pub/static
    • var
    • generated
    • Toute autre ressource statique
  3. Si vous disposez d’un accès en ligne de commande, saisissez les commandes suivantes dans l’ordre indiqué :

    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
    

    Si vous le souhaitez, saisissez toutes les commandes sur une seule ligne, en supposant que l’application soit installée dans /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. Si vous ne l’avez pas déjà fait, récupérez l’application de l’une des manières suivantes :

  5. Après avoir défini la propriété et les autorisations du système de fichiers, installez l’application

NOTE
Pour restreindre davantage les autorisations après l'installation de l'application, vous pouvez configurer un umask.

Définir la propriété et les autorisations pour deux utilisateurs

Cette section explique comment définir la propriété et les autorisations pour votre propre serveur ou une configuration d’hébergement privé. Dans ce type de configuration, vous ne pouvez pas vous connecter en tant qu’utilisateur du serveur web ou passer à . En règle générale, vous vous connectez en tant qu’utilisateur unique et exécutez le serveur web en tant qu’utilisateur différent.

Pour définir la propriété et les autorisations d’un système à deux utilisateurs :

Effectuez les tâches suivantes dans l’ordre indiqué :

À propos du groupe partagé

Pour permettre au serveur web d’écrire des fichiers et des répertoires dans le système de fichiers, mais aussi de gérer la propriété par le propriétaire du système de fichiers, les deux utilisateurs doivent appartenir au même groupe. Cela est nécessaire afin que les deux utilisateurs puissent partager l’accès aux fichiers (y compris les fichiers créés à l’aide de l’administrateur ou d’autres utilitaires web).

Cette section explique comment créer un propriétaire de système de fichiers et placer cet utilisateur dans le groupe du serveur web. Si vous le souhaitez, vous pouvez utiliser un compte utilisateur existant ; nous vous recommandons de disposer d’un mot de passe sécurisé.

NOTE
Passez à Trouvez le groupe d’utilisateurs du serveur web si vous envisagez d’utiliser un compte d’utilisateur existant.

Créez le propriétaire du système de fichiers et attribuez à l’utilisateur un mot de passe sécurisé.

Cette section explique comment créer le propriétaire du système de fichiers. (Le propriétaire du système de fichiers est un autre terme pour l’ utilisateur de ligne de commande.)

Pour créer un utilisateur sous CentOS ou Ubuntu, saisissez la commande suivante en tant qu’utilisateur disposant des privilèges root :

adduser <username>

Pour attribuer un mot de passe à l’utilisateur, saisissez la commande suivante en tant qu’utilisateur disposant des privilèges root :

passwd <username>

Suivez les invites de votre écran pour créer un mot de passe pour l’utilisateur.

WARNING
Si vous ne disposez pas des privilèges root sur votre serveur d’applications, vous pouvez utiliser un autre compte d’utilisateur local. Assurez-vous que l'utilisateur dispose d'un mot de passe fort et continuez avec Placez le propriétaire du système de fichiers dans le groupe de serveurs web.

Par exemple, pour créer un utilisateur nommé magento_user et donner un mot de passe à l’utilisateur, saisissez :

sudo adduser magento_user
sudo passwd magento_user
WARNING
Comme la création de cet utilisateur a pour but de fournir une sécurité supplémentaire, veillez à créer un mot de passe fort.

Recherche du groupe d’utilisateurs du serveur web

Pour trouver le groupe d’utilisateurs du serveur 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
    

En règle générale, le nom de l’utilisateur et le nom du groupe sont apache.

  • Ubuntu : ps aux | grep apache pour trouver l’utilisateur Apache, puis groups <apache user> pour trouver le groupe.

En règle générale, le nom d’utilisateur et le nom du groupe sont www-data.

Placez le propriétaire du système de fichiers dans le groupe de serveurs web

Pour placer le propriétaire du système de fichiers dans le groupe principal du serveur web (en supposant que le nom type du groupe Apache soit CentOS et Ubuntu), saisissez la commande suivante en tant qu’utilisateur disposant des privilèges root :

  • CentOS : usermod -a -G apache <username>
  • Ubuntu : usermod -a -G www-data <username>
NOTE
Les options -a -G sont importantes car elles ajoutent apache ou www-data en tant que groupe secondaire au compte utilisateur, ce qui conserve le groupe principal de l’utilisateur. L'ajout d'un groupe secondaire à un compte utilisateur permet de restreindre la propriété et les autorisations des fichiers pour s'assurer que les membres d'un groupe partagé n'ont accès qu'à certains fichiers.

Par exemple, pour ajouter l'utilisateur magento_user au groupe principal apache sur CentOS :

sudo usermod -a -G apache magento_user

Pour confirmer que votre utilisateur fait partie du groupe de serveurs web, saisissez la commande suivante :

groups magento_user

L’exemple de résultat suivant montre les groupes primaire (magento) et secondaire (apache) de l’utilisateur.

magento_user : magento_user apache
NOTE
En règle générale, le nom d’utilisateur et le nom du groupe principal sont identiques.

Pour terminer la tâche, redémarrez le serveur web :

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

Obtention du logiciel

Si vous ne l’avez pas déjà fait, récupérez le logiciel de l’une des manières suivantes :

Définir la propriété et les autorisations pour le groupe partagé

Pour définir la propriété et les autorisations avant d’installer l’application :

  1. Connectez-vous à votre serveur d’applications en tant que propriétaire du système de fichiers ou basculez vers .

  2. Saisissez les commandes suivantes dans l’ordre indiqué :

    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
    

Si vous le souhaitez, saisissez toutes les commandes sur une seule ligne, en supposant que l’application soit installée dans /var/www/html/magento2 et que le nom du groupe de serveurs web soit 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

Dans le système de fichiers d’événements, les autorisations sont définies de manière incorrecte et ne peuvent pas être modifiées par le propriétaire du système de fichiers. Vous pouvez saisir la commande en tant qu’utilisateur disposant des privilèges 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

Basculer vers le propriétaire du système de fichiers

Après avoir effectué les autres tâches de cette rubrique, saisissez l’une des commandes suivantes pour passer à cet utilisateur :

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

Par exemple,

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