O Nginx não inicia usando systemctl

3

Eu defini um error_log personalizado para um servidor virtual dentro de seu diretório da seguinte forma:

server {
        listen 80;
        server_name www.example.com;
        root   /home/www.example.com;
        error_log /home/www.example.com/error.log;
}

este é o meu nginx.conf:

user  nginx;
pid  /run/nginx.pid;
worker_processes  1;

O Nginx começa como root com seus comandos sem problemas:

nginx -t
nginx 

Mas quando eu tento iniciá-lo usando o systemctl, ele não inicia e o status mostra isso:

nginx: [emerg] open() "/home/www.example.com/error.log" failed (13: Permission denied)

Este é o meu nginx.service:

[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Eu quase tentei algo como mudar o usuário: grupo do diretório web para nginx: nginx. Mesmo se eu remover o error_log, ele começará a usar o systemctl, mas não poderá acessar o diretório da web, embora esteja sendo executado sob o mesmo usuário.

Não consigo descobrir por que o nginx não pode acessar esse diretório quando é iniciado com o systemctl enquanto ele tem acesso quando é iniciado diretamente.

Eu estou no centos 7.

    
por Ali 25.03.2015 / 13:43

3 respostas

3

O SELinux provavelmente não está permitindo que o nginx acesse o diretório /home . Tente alterar a raiz para /var/www como um teste. Além disso, quando você estiver iniciando o nginx, execute journalctl -x em uma sessão diferente para ver as mensagens de erro e publicá-las aqui.

    
por 25.03.2015 / 14:00
0

Uma resposta a outra pergunta pode ajudar o localizador futuro a executar essa pergunta; Ele fornece uma quantidade razoável de detalhes relacionados aos servidores da web e ao SELinux: link

    
por 20.07.2018 / 21:52
-2

Talvez o motivo seja o SELinux. Tente editar o / etc / sysconfig / selinux
// # SELINUX = impondo
SELINUX = desativado
faça a configuração tornar-se efetiva imediatamente reiniciando

    
por 18.11.2017 / 02:57

Tags