Apache, é um programa em execução em segundo plano. O Apache é originalmente iniciado pelo usuário root
(também chamado de root-process
). Esse root-process
lança vários processos filhos que manipulam as solicitações do cliente. Por motivos de segurança, os processos filhos não são executados pelo usuário root
, mas como um usuário com privilégios mínimos. Normalmente, esse usuário é denominado apache
ou www-data
.
Para descobrir qual usuário é esse para o apache v1:
ps -ef | grep httpd | grep -v grep
ou para o apache v2:
ps -ef | grep apache | grep -v grep
O resultado para o apache 2 será algo assim:
root 5001 1 0 07:21 ? 00:00:00 /usr/sbin/apache2 -k start www-data 5021 5001 0 07:21 ? 00:00:00 /usr/sbin/apache2 -k start www-data 5022 5001 0 07:21 ? 00:00:00 /usr/sbin/apache2 -k start www-data 5023 5001 0 07:21 ? 00:00:00 /usr/sbin/apache2 -k start
Nesse caso, o usuário / grupo é www-data
Assim, para tornar um diretório gravável pelo servidor da Web, precisamos definir o proprietário ou o grupo do diretório como proprietário ou grupo do Apache e ativar a permissão de gravação para ele. Normalmente, configuramos o diretório para pertencer ao grupo Apache ( apache
ou 'www-data ou qualquer usuário usado para iniciar os processos filhos) e habilitar a permissão de gravação para o grupo.
chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir
( www-data
é o nome que você encontrou com o comando ps
acima).
Em relação a:
2) Também me disseram para fazer o diretório app / runtime escrever na web. É o mesmo que o apache gravável?
Sim, este é um diretório que você precisa definir como gravável no grupo que o Apache espera. Provavelmente, isso estará em algum lugar em /var/www/
ou será definido como um host virtual em /etc/apache2/sites-enabled/
e / ou /etc/apache2/sites-available