Para ter certeza de que a configuração do umask entra em vigor, use um teste simples e não use nenhum outro aplicativo da web para isso. Pode ser o caso que esses aplicativos alterem os direitos independentemente da configuração de umask do Apache.
Script PHP de teste simples:
<?php
if ($fp = fopen(time() . '.txt', 'w')) {
fwrite($fp, 'This is a simple test.');
fclose($fp);
echo "done";
} else {
echo "error - cannot create file";
}
?>
Tome cuidado para que o usuário www-data tenha acesso de gravação à pasta onde você instalou este arquivo de teste simples.
Para que a nova umask seja executada, verifique se o arquivo / etc / apache2 / envvars será usado no arquivo inicial do Apache /etc/init.d/apache2:
...
PIDFILE=$(. /etc/apache2/envvars && echo $APACHE_PID_FILE)
...
Defina sua umask em / etc / apache2 / envvars:
...
# umask 002 to create files with 0664 and folders with 0775
umask 002
Reinicie seu Apache:
service apache2 restart
Verifique a diferença:
#> ls -l *.txt
-rw-rw-r-- 1 www-data www-data 14 2012-05-01 15:56 1335880583.txt
-rw-r--r-- 1 www-data www-data 14 2012-05-01 15:55 1335880540.txt