Eu tenho um script PHP que cria um diretório e gera uma imagem para o diretório. Isso estava funcionando muito bem no Apache, mas recentemente decidimos mudar para o NGINX para fazer mais uso de nossa RAM limitada. Estou usando o comando PHP mkdir() para criar o diretório:
mkdir(dirname($path['image']['server']), 0755, true);
Após a mudança para NGINX, estou recebendo o seguinte aviso:
Warning: mkdir(): Permission denied in ...
Eu já verifiquei todas as permissões dos diretórios pai, então determinei que provavelmente preciso alterar o 'usuário' NGINX ou PHP-FPM, mas não tenho certeza de como fazer isso (nunca precisei especificar user permissões para APACHE). Não consigo encontrar muitas informações sobre isso. Qualquer ajuda seria ótimo!
(Observação: além desse pequeno problema, a mudança para o NGINX foi bem tranquila; estou usando-o pela primeira vez e, literalmente, levou apenas 10 minutos para começar a usar o NGINX. Agora estou apenas passando fora as dobras.)
Execute nginx & php-fpm como www:www
###1. Nginx
Edite nginx.conf e defina o usuário para
www www;
:###2. PHP-FPM
Edite php-fpm.conf e defina usuário e grupo para
www
:No Ubuntu 14.04 o arquivo para alterar usuário e grupo no PHP-FPM é:
/etc/php5/fpm/pool.d/www.conf
. Neste arquivo altere estes parâmetros:Para responder à sua pergunta real, basta alterar a
user
linhanginx.conf
assim:Exemplo:
O usuário preferido para que o Nginx seja executado, na verdade, difere entre os sistemas operacionais. Às vezes, o Nginx deve ser executado como
www-data
. Outras vezes, na verdade, deve ser executado comonobody
.Em alguns sistemas operacionais (como o Windows), isso nem importa, e a
user
linha denginx.conf
entrada pode ser comentada ou totalmente excluída.A solução a seguir funcionou alterando o usuário da web comigo usando
Ubuntu 18.04 LTS
,nginx 1.14
ephp7.2-fpm
.1. Nginx
Edite
/etc/nginx/nginx.conf
e defina o usuário parawebuser;
2. PHP-FPM
Editar
/etc/php/7.2/fpm/pool.d/www.conf
.