2016-03-07 9 views
8

Sono in esecuzione php5-fpm con nginx collegato tramite porta (non socket). È disponibile Debian Jessie con tutti i pacchetti installati tramite apt-get.Come impostare umask per php5-fpm su Debian?

Sto cercando di modificare umask predefinito per utente www-data che php5-fpm utilizza da 0022 a 0002 per consentire autorizzazioni di scrittura di gruppo. Ho provato:

  • modifica /etc/init.d/php5-fpm script di init e aggiungendo --umask 0002 alla chiamata start-stop-daemon, ma è stato ignorato;
  • l'aggiunta di umask 0002 a /var/www/.profile come /var/www è una directory home per l'utente www-data, ma non ha aiutato (non sono sorpreso).
  • Non sto usando upstart quindi this solution non fa per me.

Inoltre, indipendentemente da ciò che ho provato, il comando sudo -u www-data bash -c umask restituisce sempre 0022.

risposta

3

sono stato in grado di impostare l'umask per php5-fpm servizio modificando è unit.service file come suggerito here e here. La soluzione completa e funzionante per Debian 8 è questa:

  1. Modificare manualmente /etc/systemd/system/multi-user.target.wants/php5-fpm.service di file e aggiungere UMask=0002 traiettoria interna [Service] sezione.
  2. comando Esegui systemctl daemon-reload
  3. comando Esegui systemctl restart php5-fpm.service

Ora il file del servizio si presenta così:

[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 

Nota che:

  1. non è possibile utilizzare systemctl edit php5-fpm.service comando come edit l'opzione è stata introdotta in systemctl versione 218 ma Debian 8 viene fornito con la versione 215.
  2. L'aggiunta del file *.conf come suggerito nei commenti per questo answer non ha funzionato per me, ma forse ho incasinato qualcosa (i commenti sono benvenuti perché il file di modifica non è qualcosa che Mi sento a mio agio con).
+0

Grazie mille! Ha funzionato come un fascino! – balu

+0

L'aggiunta di un file '.conf' non funziona a causa di un errore. Invece di 'php-fpm.service' devi scrivere' php5-fpm.service'. Penso che sia meglio aggiungere un file '.conf' come questo http://serverfault.com/questions/582371/how-to-set-umask-for-php-fpm-in-fedora/582380#582380 –