Eu instalei a linha principal nginx 1.13.9 usando o forneceu rpm no CentOS 7.4. Eu tive que usar este rpm porque eu sou forçado a fazer yum localinstall
devido à governança da empresa.
Meu problema é que systemctl start nginx
sempre gera isso:
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
journalctl me diz:
Mar 07 08:57:05 myhost nginx[19466]: nginx: [emerg] open() "/var/opt/nginx/config/nginx.conf" failed (13: Permission denied)
(O que você vê aqui é outra coisa da empresa: eu não devo colocar os arquivos conf sob o etc, eu tenho que mantê-los em um diretório onde eu não preciso de permissões de root para alterá-los)
Estas são as permissões definidas para o nginx.conf:
-rw-r--r--. 1 nginx nginx 241 Mar 7 09:17 nginx.conf
Reduzi o nginx.conf para um mínimo (absoluto) e tentei colocar arquivos de log, pid e similares em diretórios onde as permissões são concedidas com certeza. O log de erros não contém absolutamente nada.
Este é o meu nginx.conf reduzido:
user nginx nginx;
pid /tmp/nginx.pid;
error_log /tmp/error.log debug;
events {
}
http {
default_type application/octet-stream;
charset UTF-8;
server {
listen 8080;
location / {
root /tmp/;
}
}
}
E esta é a minha definição nginx.service
ligeiramente modificada:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /var/opt/nginx/config/nginx.conf -g "error_log /tmp/error.log debug;"
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
(Você pode ver que eu tentei forçar um error_log apenas no caso do nginx falhar antes que o nginx.conf seja lido)
Quando eu faço sudo -u nginx /usr/sbin/nginx -c /var/opt/nginx/config/nginx.conf -g "error_log /tmp/error.log debug;"
, isso funciona muito bem. Apesar de um curto aviso, o processo começa bem:
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /var/opt/nginx/config/nginx.conf:1
Tenho certeza que deve ser algum erro estúpido, mas não tenho idéia de qual.