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, recebo o seguinte aviso:
Warning: mkdir(): Permission denied in ...
Eu já verifiquei todas as permissões dos diretórios pai, então concluí que provavelmente preciso alterar o 'usuário' do NGINX ou PHP-FPM, mas não tenho certeza de como fazer isso (nunca precisei especificar o usuário permissões para o APACHE). Não consigo encontrar muita informação sobre isso. Qualquer ajuda seria ótimo!
(Nota: além dessa pequena interrupção, a mudança para o NGINX foi bastante fácil; estou usando pela primeira vez e, literalmente, levou apenas 10 minutos para começar a operar com o NGINX. Agora estou passando a ferro as torções.)
fonte
nginx.conf
ewww.conf
por padrão IIRC.Respostas:
Execute nginx e php-fpm como www: www
1. Nginx
Edite nginx.conf e defina user como
www www;
2. PHP-FPM
Edite php-fpm.conf e defina usuário e grupo como
www
.fonte
user www-data
). No entanto, não vejo nenhum usuário definido emphp-fpm.conf
. Devo apenas adicioná-lo ao topo usando a mesma sintaxe (user www www
)?[www]
peça e adicioneuser=www
na próxima linha egroup=www
na próxima.[emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed
.No Ubuntu 14.04 o arquivo para a mudança de usuário e grupo em PHP-FPM é:
/etc/php5/fpm/pool.d/www.conf
. Neste arquivo, altere estes parâmetros:fonte
/etc/php/7.2/fpm/pool.d/www.conf
Para responder à sua pergunta real, basta alterar a
user
linha da seguintenginx.conf
maneira:Exemplo:
O usuário preferido para executar o Nginx como realmente difere entre os sistemas operacionais. Às vezes, o Nginx deve funcionar como
www-data
. Outras vezes, na verdade, ele deve ser executado comonobody
.Em alguns sistemas operacionais (como o Windows), isso nem importa, e a entrada de
user
linhanginx.conf
pode ser comentada ou totalmente excluída.fonte