Я запускаю php5-fpm
с nginx
подключенным через порт (не сокет). Это пакет Debian Jessie со всеми пакетами, установленными через apt-get
.
Я пытаюсь изменить default umask для пользователя www-data, который использует php5-fpm
с 0022
по 0002
чтобы разрешить права на запись в группе. Я пробовал:
/etc/init.d/php5-fpm
init и добавление --umask 0002
к --umask 0002
start-stop-daemon
, но он был проигнорирован; umask 0002
в /var/www/.profile
поскольку /var/www
является домашним каталогом для пользователя www-data
, но это не помогло (я не удивлен). upstart
поэтому это решение не для меня. Кроме того, независимо от того, что я пробовал, команда sudo -u www-data bash -c umask
всегда возвращает 0022
.
Я смог установить umask для службы php5-fpm
unit.service
, unit.service
файл unit.service
как это предлагается здесь и здесь . Полное и работающее решение для Debian 8:
/etc/systemd/system/multi-user.target.wants/php5-fpm.service
и добавьте UMask=0002
внутри раздела [Service]
. systemctl daemon-reload
systemctl restart php5-fpm.service
Теперь служебный файл выглядит так:
[Unit] Description = The PHP FastCGI Process Manager After = network.target [Service] Type = notify PIDFile = /var/run/php5-fpm.pid ExecStartPre = /usr/lib/php5/php5-fpm-checkconf ExecStart = /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf ExecReload = /bin/kill -USR2 $MAINPID ; Added to set umask for files created by PHP UMask = 0002 [Install] WantedBy = multi-user.target
Обратите внимание, что:
systemctl edit php5-fpm.service
поскольку параметр edit
был введен в systemctl
версии 218, но Debian 8 поставляется с версией 215. *.conf
как было предложено в комментариях для этого ответа , не сработало для меня, но, может быть, я что-то испортил (комментарии приветствуются для этого, так как редактирующий файл блока не является тем, что мне комфортно).