ubuntu linux Как работать с www-data (права для работы с файлами через php apache) -- для машины разработчика. Рекомендуемые

Внимание: перед чтением этого раздела вам потребуется понимание темы про права в Linux

Суть проблемы:

  1. PHP, настроенный как модуль Apache, работает под тем же, что и Апач пользователем www-data
  2. Мы, когда залогинились в нашей операционной системе работаем под своим пользователем

-- поэтому перед нами стоит задача как-то сделать так, чтобы с php-кодом могли работать и процессы Апача и программы запущенные от имени нашего пользователя (напр. тестовый редактор файлов кода).

Есть два варианта решения этой проблемы:

  • 1) Давать права действия с файлами вообще всем (а не только пользователю и группе)
  • 2) Добавить своего пользователя в группу, в которой уже состоит пользователь, под которым работает Apache

Первый вариант - плохая практика, т.к. давать права вообще всем пользователям системы не нужно никогда (это нарушения принципа минимальных необходимых привилегий)

Второй вариант -- то, что мы и сделаем в данном случае.

Добавляем своего пользователя в группу www-data

Для локальной машины вполне допустимо добавить себя в группу www-data командой:

sudo usermod -G www-data -a $USER

И прелогиниваемся под нашим пользователем в терминале, чтобы добавление группы вступило в силу:

su - $USER

(для этого способа, применение группы сработает только для текущей вкладки терминала, чтобы изменения применились вообще везде - перезагрузите систему)

(то есть в такую под которой работает Apache, это нужно в случае если ваш php установлен как модуль Апач ).

И тогда вам нужно будет просто делать владельцем ресурсов группу/пользователя www-data:www-data (именно под ними работает апач, и php, если он установлен как модуль апача)
-- в этом случае, например NetBeans (или composer или другие программы/утилиты) будет запускаться от имени вашего пользователя, а значит, вам часто достаточно будет давать необходимые права группе (часто на запись g+w) и автоматом за счет общей группы с этими файлами смогут работать и php (от имени www-data) и куча программ, которые запускают вами, а значит работают под вашим пользователем.

Видео-пояснения

Если то, что выше неясно, посмотрите видео-пояснения:

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

Об использовании этих настроек у нас есть видео: https://youtu.be/W4d8Ctg1Dls

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Пример команды смены владельца

Пример команды (рекурсивная выдача прав на все содержимое папки):

sudo chown -R www-data:www-data /path/to/folder

(читайте подробнее о владельцах)

Директория расположения сайта и права на неё

Если сайт лежит в

/var/www/имяпапки

- то владельцем этой папки надо делать пользователя и группу под которым работает php (в нашем случае это www-data:www-data), о чем и написано выше.

_____________
матфак вгу и остальная классика =)