ubuntu linux Как работать с www-data (права для работы с файлами через php apache) -- для машины разработчика. Рекомендуемые
Primary tabs
Внимание: перед чтением этого раздела вам потребуется понимание темы про права в Linux
Суть проблемы:
- PHP, настроенный как модуль Apache, работает под тем же, что и Апач пользователем www-data
- Мы, когда залогинились в нашей операционной системе работаем под своим пользователем
-- поэтому перед нами стоит задача как-то сделать так, чтобы с 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) и куча программ, которые запускают вами, а значит работают под вашим пользователем.
Видео-пояснения
Если то, что выше неясно, посмотрите видео-пояснения:
- php apache Права в linux (ubuntu) Как настроить для изучения: https://youtu.be/W4d8Ctg1Dls
- Log in to post comments
- 9876 reads
vedro-compota
Sat, 05/26/2018 - 12:14
Permalink
О том же на видео
Об использовании этих настроек у нас есть видео: https://youtu.be/W4d8Ctg1Dls
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 11/28/2021 - 16:10
Permalink
Уточнения
Пример команды смены владельца
Пример команды (рекурсивная выдача прав на все содержимое папки):
(читайте подробнее о владельцах)
Директория расположения сайта и права на неё
Если сайт лежит в
- то владельцем этой папки надо делать пользователя и группу под которым работает php (в нашем случае это www-data:www-data), о чем и написано выше.
_____________
матфак вгу и остальная классика =)