Які дозволи мені дати / var та / media?


21

Я розумію , що Magento каже мати / вар і / ЗМІ на 700 для папок і 600 для файлів , але коли я роблю це, він ламає деякі частини мого сайту. Мені цікаво побачити, які дозволи користуються цими папками більшість людей.


де ти це читав? з 700?
FlorinelChis

Відповіді:


18

Я не бачив багато згадок про використання 700 і 600, але це, як правило, хороша порада. На жаль, кожен сервер, який налаштований, відрізняється, і його слід зважувати на зручність (доступ користувача до оновлення / редагування файлів)

Основним підходом має бути лише віддавати якомога менше та зафіксувати його, наскільки можна (700/600 - це добре). У цьому відношенні "офіційна" порада щодо wiki хоче застосовуватись до якомога більшої кількості обставин і пропонує дозволу на читання для всіх (а це означає, що будь-яка компрометована інша послуга на сервері, наприклад, зможе читати додаток / etc / local. xml з конфігурацією db).

У вашому випадку в даний час це звучить так, ніби файли належать іншому користувачеві, ніж те, під яким працює ваш веб-сервер / php-процес. Зміна права власності на файли на веб-сервері повинна вирішити вашу оригінальну проблему.

Зауважте, що використання 700/600 та призначення файлів веб-серверу означає, що ваш звичайний користувач не зможе редагувати файли.

Нижче я вважаю, що це гарний компроміс для зручності проти блокування. Усі файли належать користувачеві: webservergroup

var та media 770/660
Сервер та користувач можуть читати та писати з папок var та media (сесія / кеш / зображення).

решта 750/640
Ваш користувач може редагувати / оновлювати код.
Веб-сервер вміє читати файли для виконання / відображення.


2
Майже через два роки, і зараз я згоден з цим більше, ніж з власною відповіддю.
philwinkle

Я зрозумів, що ніколи не давав відповіді на це, і в мене виникло питання про те, що файли не належать веб-серверу. Я також просив уточнити дозволи, щоб отримати більше стандартної практики, коли я читав різні речі.
Егрегорі

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


5

Хоча рішення Філа добре, я використовую трохи інший підхід. Окрім того, щоб зробити власника файлів "php / webserver user", я створюю додаткову групу. Зазвичай його називають dev . І я додаю "php user" і себе та інших розробників до цієї групи розробників . Потім я роблю chgrp, щоб усі файли в піддереві проекту Magento мали груповий розробник . Я додаю + s біт до папок, що забезпечує новоствореним папкам отримання однакових дозволів.

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

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

Оригінальне запитання - var та media мають мати такі дозволи, щоб "користувач php" міг читати та писати у ці папки. Він повинен мати можливість записувати кеш, файли сеансу тощо під var, а також повинен вміти записувати кеш зображень продукту та зображення на носії. Так само, як Філ радить: виконайте подачу або chgrp для "php user" та надайте rw дозволи "php користувачеві".

Я думаю, що правильніше посилатися на "php user" в контексті FPM (CGI). Користувач веб-сервера може відрізнятися від того, на якому працює PHP.


3
Ви абсолютно правильні щодо термінології щодо користувача веб-сервера та користувача php. Чудова точка. Хоча, варто задатися питанням, чи знає людина, яка запитує, як змінити дозволи, знає, працює вони з PHP FPM чи ні ...
philwinkle

1

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

/ медіа - використання 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
Вище не те, що запитували ОП, це для Magento 2.x, не для Magento 1.7
Frank Groot

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.