Настройка разрешений веб-сервера Ubuntu для Magento2 - PullRequest
0 голосов
/ 03 июля 2018

Я борюсь с правильной настройкой пользователей и разрешений на папки для Magento2. Сайт установлен в /var/www/html, веб-сервер Apache работает как www-data:www-data в Ubuntu 16.04.

Мой пользователь командной строки - mosadmin, но у него нет разрешений на чтение и запись для некоторых папок, поэтому я вызываю большинство команд, используя sudo.

Все работает нормально, если я задаю www-data как владельца и группу всего:

$ sudo chown -R www-data: /var/www/html

Проблема в том, что когда я устанавливаю модули или выполняю некоторые задачи администратора, мне обычно приходится звонить

$ sudo php bin/magento setup:upgrade
$ sudo php bin/magento setup:static-content:deploy

Когда я делаю это, некоторые папки, такие как подпапки var/generation или var/cache, получают root:root как владелец, и Magento не может писать туда. Это вызывает ошибки и выводит весь сайт из строя, если я не верну вручную все данные в www-данные.

Очевидно, я хочу, чтобы разрешения были установлены так, чтобы мне больше не приходилось их трогать и убедиться, что даже после вызова команд администратора сайт будет работать. Я пробовал несколько вещей, но ничего из этого не сработало на 100%.

Одна вещь, которую я попробовал, - установить бит управления для некоторых папок, который гарантирует, что вновь созданные подпапки будут наследовать родительскую группу папок, а не группу пользователя, вызывающего команду:

$ cd /var/www/html
$ sudo chmod -R g+s pub/static pub/media var/cache var/generation 

Это, похоже, решает проблему с тем, что папки кеша недоступны для записи, но я все еще получаю ошибки в var/generation. Проблема здесь в том, что некоторые папки там восстанавливаются с владельцами root:www-data, и, поскольку они имеют разрешения 755, группа / apache не может писать туда, и я облажался.

Я думаю, что umask должен решить эту проблему, но как ни странно, когда я звоню umask, он дает мне 0002, так что это должно дать разрешения на запись для группы. Тем не менее, когда я делаю sudo mkdir test, у него есть разрешения 755. Если я изменяю маску на что-то другое, например umask 0022, ничего не меняется, и разрешения для новых папок остаются прежними.

Я не гуру Linux, и у меня постепенно заканчиваются идеи. Есть ли лучший способ установить это так, чтобы мне не приходилось возвращать владельца всех файлов после каждой регенерации контента?

1 Ответ

0 голосов
/ 04 июля 2018

кд

найти. -type f -exec chmod 644 {} \; // 644 разрешения для файлов

найти. -тип d -exec chmod 755 {} \; // 755 разрешение для каталога

find ./var -type d -exec chmod 777 {} \; // 777 разрешение для папки var

find ./pub/media -type d -exec chmod 777 {} \;

find ./pub/static -type d -exec chmod 777 {} \;

chmod 777 ./app/etc

chmod 644 ./app/etc/*.xml

chown -R:

chmod u + x bin / magento`

...