Какие разрешения я должен дать / var и / media?

21

Я понимаю , что Magento говорит иметь / вар и / СМИ на 700 для папок и 600 для файлов , но когда я делаю это, он ломает некоторые части моего сайта. Мне любопытно посмотреть, какие разрешения большинство людей используют для этих папок.

Egregory
источник
где ты это прочитал? с 700?
FlorinelChis

Ответы:

18

Я не вижу много упоминаний об использовании 700 и 600, но в целом это хороший совет. К сожалению, каждый сервер настроен по-разному, и его необходимо сравнить с удобством (доступ пользователей к обновлению / редактированию файлов).

Основной подход должен состоять в том, чтобы отдавать как можно меньше и блокировать его как можно больше (700/600 хорошо для этого). В этом отношении «официальный» совет в вики хочет применить к как можно большему количеству обстоятельств и предлагает разрешения на чтение для всех (что означает, что любой скомпрометированный другой сервис на сервере, например, сможет читать app / etc / local. XML с вашей конфигурацией БД).

В вашем случае это звучит так, как будто файлы принадлежат другому пользователю, нежели тот, под которым работает ваш веб-сервер / php. Смена владельца файлов на веб-сервер должна решить вашу первоначальную проблему.

Обратите внимание, что использование 700/600 и назначение файлов веб-серверу означает, что ваш обычный пользователь не сможет редактировать файлы.

Ниже, я чувствую, хороший компромисс для удобства против блокировки. Все файлы принадлежат пользователю: webservergroup

var и media 770/660
Сервер и ваш пользователь могут читать и писать из папок var и media (session / cache / images).

остальные 750/640
Ваш пользователь может редактировать / обновлять код.
Веб-сервер может читать файлы для выполнения / отображения.

Кристоф в Фуман
источник
2
Спустя почти два года, и я теперь согласен с этим больше, чем мой собственный ответ.
Philwinkle
Я понял, что никогда не отвечал на это, и проблема, с которой я столкнулся, заключалась в том, что файлы не принадлежали веб-серверу. Я также просил уточнить разрешения, чтобы получить больше стандартной практики, поскольку я читал разные вещи.
Egregory
18

В общем, все файлы должны быть, 644и все папки должны быть 755и должны принадлежать пользователю, под которым работает ваш веб-сервер . mageИсполняемый файл должен быть предоставлены 550разрешения разрешить выполнение.

Этот сценарий оболочки должен исправлять ситуацию, если он запускается из корня Mage:

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

Источник: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions

philwinkle
источник
5

Хотя решение Фила хорошо, я использую немного другой подход. Помимо того, что я сделал владельца файла php / webserver, я создаю дополнительную группу. Обычно это называется dev . И я добавляю «php user», себя и других разработчиков в эту группу dev . Затем я делаю chgrp, чтобы все файлы в поддереве проекта Magento имели группу dev . Я добавляю бит + s к папкам, который гарантирует, что вновь созданные подпапки получают те же разрешения.

Я создал публичную суть с моим сценарием fix_permissions.sh. Не стесняйтесь использовать его :) Это поможет вам сохранить все поддерево проекта Magento с хорошими разрешениями.

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

Исходный вопрос - var и media должны иметь такие разрешения, чтобы «пользователь php» мог читать и записывать в эти папки. Он должен быть в состоянии записывать кеш, файлы сессий и т. Д. Под var, и он должен быть в состоянии записывать кэш изображений продукта и изображения под носитель. Так что сделайте, как советует Фил: chown или chgrp для «php user» и предоставьте права доступа «php user».

Я думаю, что более правильно ссылаться на «пользователя php» в контексте FPM (CGI). Пользователь веб-сервера может отличаться от того, на котором работает PHP.

Sven
источник
3
Вы абсолютно правы в отношении терминологии, касающейся пользователя веб-сервера и пользователя php. Отличный момент. Однако нужно задаться вопросом, знает ли человек, спрашивающий, как изменить разрешения, работает ли он на PHP FPM или нет ...
philwinkle
1

/ var - magento используется для записи данных в кеш, сессии и т.д.

/ media - magento используется для обновления изображения продукта, изображения категории (любой тип изображения).

Таким образом, эти две папки вы должны использовать разрешение на чтение + запись. Другой файл вы должны использовать разрешение на чтение + выполнение.

Сохель Рана
источник
1

Разрешение на файл - 644. Запустите приведенный ниже код в корневом каталоге, используя ssh. находить .

-type f -exec chmod 644 {} \;

Разрешение для папки - 755. Запустите приведенный ниже код в корневом каталоге, используя ssh. находить .

-type d -exec chmod 755 {} \;

Разрешение папки Var - 777. Запустите приведенный ниже код в корневом каталоге, используя ssh.

chmod -R 777 var

Разрешение статической папки - 777. Запустите приведенный ниже код в корневом каталоге, используя ssh.

chmod -R 777 pub/static

Разрешение папки мультимедиа - 777. Запустите приведенный ниже код в корневом каталоге, используя ssh.

chmod -R 777 pub/media
Абхинав Сингх
источник
2
Выше это не то, что спросил OP, это для Magento 2.x, а не для Magento 1.7
Фрэнк Гроот