Configuration de la propriété et des autorisations des fichiers
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 pour que la ligne de commande puisse écrire des fichiers dans le système de fichiers.
La procédure à suivre est différente selon que vous utilisez hébergement partagé et que vous avez 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 des autorisations de préinstallation si vous vous connectez au serveur d’applications avec le même utilisateur qui exécute également le serveur web. Ce type de configuration est courant dans les environnements d’hébergement partagés.
Pour définir des autorisations avant d’installer l’application, procédez comme suit :
-
Connectez-vous à votre serveur d’applications.
-
Utilisez une application de gestion 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
-
Si vous disposez d’un accès à la 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
Pour éventuellement saisir toutes les commandes sur une ligne, saisissez ce qui suit 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
-
Si vous ne l'avez pas déjà fait, obtenez l'application de l'une des façons suivantes :
-
Après avoir défini la propriété et les autorisations du système de fichiers, installez l’application
Définir la propriété et les autorisations pour deux utilisateurs
Cette section explique comment définir la propriété et les autorisations de votre propre serveur ou d’une configuration d’hébergement privée. Dans ce type de configuration, vous ne pouvez généralement pas vous connecter en tant qu’utilisateur du serveur web ou passer à cet utilisateur. 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é
- Créez le propriétaire du système de fichiers et donnez à l'utilisateur un mot de passe fort
- Rechercher le groupe de l'utilisateur du serveur web
- Placez le propriétaire du système de fichiers dans le groupe de serveurs web
- Obtenir le logiciel
- Définir la propriété et les autorisations pour le groupe partagé
À 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 conserver 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 d’Admin 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. Vous pouvez utiliser un compte utilisateur existant si vous le souhaitez ; nous recommandons à l’utilisateur d’avoir un mot de passe sécurisé pour des raisons de sécurité.
Créez le propriétaire du système de fichiers et donnez à l'utilisateur un mot de passe fort
Cette section explique comment créer le propriétaire du système de fichiers. (propriétaire du système de fichiers est un autre terme pour 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 à l'écran pour créer un mot de passe pour l'utilisateur.
root
sur votre serveur d’applications, vous pouvez utiliser un autre compte 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 lui donner un mot de passe, saisissez :
sudo adduser magento_user
sudo passwd magento_user
Recherche du groupe d’utilisateurs du serveur web
Pour trouver le groupe de l'utilisateur 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, les noms d’utilisateur et de groupe sont tous deux apache
.
- Ubuntu :
ps aux | grep apache
pour trouver l'utilisateur Apache, puisgroups <apache user>
pour trouver le groupe.
En règle générale, le nom d’utilisateur et le nom du groupe sont tous deux 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 le nom de groupe Apache standard pour CentOS et Ubuntu), saisissez la commande suivante en tant qu’utilisateur avec des privilèges root
:
- CentOS :
usermod -a -G apache <username>
- Ubuntu :
usermod -a -G www-data <username>
-a -G
sont importantes, car elles ajoutent apache
ou www-data
en tant que groupe secondaire au compte d’utilisateur, ce qui préserve 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
sous CentOS :
sudo usermod -a -G apache magento_user
Pour confirmer que votre utilisateur est membre du groupe de serveurs web , saisissez la commande suivante :
groups magento_user
L’exemple de résultat suivant montre les groupes principal (magento
) et secondaire (apache
) de l’utilisateur.
magento_user : magento_user apache
Pour terminer la tâche, redémarrez le serveur web :
- Ubuntu :
service apache2 restart
- CentOS :
service httpd restart
Obtenir le logiciel
Si vous ne l'avez pas déjà fait, procurez-vous le logiciel de l'une des façons 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 :
-
Connectez-vous au serveur d’applications en tant que propriétaire du système de fichiers ou passez à ce serveur.
-
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
Pour éventuellement saisir toutes les commandes sur une ligne, saisissez ce qui suit 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 cas où les autorisations du système de fichiers 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 de droits d’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