В настоящее время я использую Apache/2.4.10 (Debian Jessie) с PHP 7.0.6 fpm.
Все указывает на то, что теперь мне нужно добавить umask 0002 в php-fpm.conf
, чтобы пользователь www-data
создавал файлы с правами rw-rw-r
.
В настоящее время я использую Apache/2.4.10 (Debian Jessie) с PHP 7.0.6 fpm.
Все указывает на то, что теперь мне нужно добавить umask 0002 в php-fpm.conf
, чтобы пользователь www-data
создавал файлы с правами rw-rw-r
.
Я надеюсь, что это сработает, пожалуйста, попробуйте этот способ
Вручную отредактируйте файл /etc/systemd/system/multi-user.target.wants/ php7.0-fpm.service
и добавьте строку UMask=0002
в раздел [Сервис].
Раньше было так.
тогда
Выполнить команду systemctl daemon-reload
тогда
Запустите команду systemctl перезапустить php7.0-fpm.service
Теперь сервисный файл выглядит так:
[Unit]
Description = The PHP FastCGI Process Manager
After = network.target
[Service]
Type = notify
PIDFile = /var/run/php/php7.0-fpm.pid
ExecStartPre = /usr/lib/php/php7.0-fpm-checkconf
ExecStart = /usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/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 php7.0-fpm.service, так как опция редактирования была введена в systemctl
версии 218, но Debian 8 поставляется с версией 215.
sudo -u www-data touch foo
после выполнения всех шагов, и старый umask все еще использовался. Предложения приветствуются...
- person William Turrell; 24.07.2017
Относительно комментария Уильяма Таррелла:
sudo -u www-data touch foo
коснется файла foo
, как если бы веб-сервер сделал это без PHP. Таким образом, будет использоваться umask процесса веб-сервера, а не установленный в PHP-FPM. Чтобы изменить umask процесса веб-сервера, вам нужно отредактировать файл envvars
в /etc/apache2
(для систем на основе Debian).