Quelles autorisations dois-je accorder à / var et / media?


21

Je comprends que magento dit d'avoir / var et / media à 700 pour les dossiers et 600 pour les fichiers mais quand je le fais, cela casse certaines parties de mon site. Je suis curieux de voir quelles autorisations la plupart des gens utilisent pour ces dossiers.


où avez-vous lu cela? avec 700?
FlorinelChis

Réponses:


18

Je n'ai pas vu beaucoup de mentions sur l'utilisation de 700 et 600 mais c'est généralement un bon conseil. Malheureusement, chaque configuration de serveur est différente et doit être mise en balance avec la commodité (accès utilisateur pour mettre à jour / modifier les fichiers).

L'approche sous-jacente devrait être de ne donner que le moins possible et de le verrouiller autant que possible (700/600 est bon pour cela). À cet égard, les conseils "officiels" sur le wiki veulent s'appliquer au plus grand nombre de circonstances possible et suggèrent des autorisations de lecture pour tout le monde (ce qui signifie que tout autre service compromis sur le serveur pourra alors par exemple lire app / etc / local. xml avec votre configuration db).

Dans votre cas, il semble actuellement que les fichiers appartiennent à un utilisateur différent de celui sous lequel s'exécute votre processus de serveur Web / php. Changer la propriété des fichiers sur le serveur Web devrait résoudre votre problème d'origine.

Veuillez noter que l'utilisation de 700/600 et l'attribution des fichiers au serveur Web signifie que votre utilisateur normal ne pourra pas modifier les fichiers.

Je pense que ce qui suit est un bon compromis entre commodité et verrouillage. Tous les fichiers appartiennent à l'utilisateur: webservergroup

var et media 770/660
Le serveur et votre utilisateur sont autorisés à lire et à écrire à partir des dossiers var et media (session / cache / images).

le reste 750/640
Votre utilisateur peut éditer / mettre à jour le code.
Le serveur web est capable de lire les fichiers pour exécution / affichage.


2
Près de deux ans plus tard, je suis maintenant plus d'accord avec cela que ma propre réponse.
philwinkle

J'ai réalisé que je n'avais jamais fourni de réponse à cela et le problème que je rencontrais était que les fichiers n'appartenaient pas au serveur Web. Je demandais également de clarifier les autorisations pour obtenir plus d'une pratique standard car je lisais différentes choses.
Egregory

18

En général, tous les fichiers doivent être 644et tous les dossiers doivent être 755et doivent appartenir à l'utilisateur sous lequel votre serveur Web s'exécute . L' mageexécutable doit être 550autorisé à autoriser l'exécution.

Ce script shell devrait corriger les choses s'il est exécuté à partir de votre racine Mage:

#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

Source: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions


5

Bien que la solution de Phil soit bonne, j'utilise une approche un peu différente. En plus de rendre le propriétaire "php / webserver user" des fichiers, je crée un groupe supplémentaire. Habituellement, cela s'appelle dev . Et j'ajoute "php user" et moi-même et d'autres développeurs à ce groupe dev . Ensuite, je fais chgrp pour que tous les fichiers du sous-arbre du projet Magento aient le groupe dev . J'ajoute le bit + s aux dossiers qui garantit que les sous-dossiers nouvellement créés obtiennent les mêmes autorisations.

J'ai créé un aperçu public avec mon script fix_permissions.sh. N'hésitez pas à l'utiliser :) Il vous aide à conserver l'ensemble de votre sous-arbre de projet Magento avec de bonnes autorisations.

https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh

La question d'origine - var et les médias doivent avoir des autorisations telles que "l'utilisateur php" peut lire et écrire dans ces dossiers. Il doit être capable d'écrire le cache, les fichiers de session, etc. sous var et il doit être capable d'écrire le cache d'image du produit et les images sous le support. Faites donc ce que Phil conseille: chown ou chgrp à "php user" et donnez les permissions rw à "php user".

Je pense qu'il est plus correct de se référer à "utilisateur php" dans le contexte de FPM (CGI). L'utilisateur du serveur Web peut être différent de celui qui exécute PHP.


3
Vous avez absolument raison en ce qui concerne la terminologie concernant l'utilisateur de serveur Web par rapport à l'utilisateur php. Bon point. Cependant, il faut se demander si une personne demandant comment modifier les autorisations saura si elle exécute PHP FPM ou non ...
philwinkle

1

/ var - magento permet d'écrire des données de cache, de session, etc.

/ media - utilisation de magento pour mettre à jour l'image du produit, l'image de la catégorie (tout type d'image).

Donc, ces deux dossiers, vous devez utiliser l'autorisation de lecture + écriture. Autre fichier que vous devez utiliser pour lire + autorisation d'exécution.


1

L'autorisation de fichier est 644. Exécutez le code ci-dessous dans le répertoire racine à l'aide de ssh. trouver .

-type f -exec chmod 644 {} \;

L'autorisation de dossier est 755. Exécutez le code ci-dessous dans le répertoire racine à l'aide de ssh. trouver .

-type d -exec chmod 755 {} \;

L'autorisation du dossier Var est 777. Exécutez le code ci-dessous dans le répertoire racine à l'aide de ssh.

chmod -R 777 var

L'autorisation de dossier statique est 777. Exécutez le code ci-dessous dans le répertoire racine à l'aide de ssh.

chmod -R 777 pub/static

L'autorisation de dossier multimédia est 777. Exécutez le code ci-dessous dans le répertoire racine à l'aide de ssh.

chmod -R 777 pub/media

2
Ce n'est pas ce que OP a demandé ci-dessus, c'est pour Magento 2.x pas pour Magento 1.7
Frank Groot

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.