2015-12-14 9 views
7

Il sotto è il mio file di configurazione di nginx trova nella /etc/nginx/nginx.confNginx comunque cercare di aprire il file di log degli errori di default anche se ho impostato file di configurazione nginx e ricaricare

user Foo; 
worker_processes 1; 

error_log /home/Foo/log/nginx/error.log; 
pid /home/Foo/run/nginx.pid; 

events { 
    worker_connections 1024; 
    use epoll; 
} 

http { 
    access_log /home/Foo/log/nginx/access.log; 

    server { 
     listen 80; 

     location =/{ 
      proxy_pass http://192.168.0.16:9999; 
     } 
    } 
} 

Come potete vedere cambio di registro, i file di pid posizione in home directory.

Quando riavvio Linux sembra funzionare, Nginx registra i registri degli errori nel file che ho impostato e anche il file pid.

Tuttavia, quando tenta nginx -s reload o l'altro, tenta di aprire altro file di registro degli errori.

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 
2015/12/14 11:23:54 [warn] 3356#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
2015/12/14 11:23:54 [emerg] 3356#0: open() "/home/Foo/run/nginx.pid" failed (13: Permission denied) 
nginx: configuration file /etc/nginx/nginx.conf test failed 

so, posso risolvere errore di autorizzazione con sudo ma il problema principale qui è un file di log degli errori (/var/log/nginx/error.log) Nginx tenta di aprire.

Perché tenta di accedere a un altro file di registro degli errori?

risposta

1

Verificare le autorizzazioni sulla directory/home/Foo/log/nginx /. Deve essere scrivibile da nginx. Imposta permessi in questo modo:

sudo chmod 766 /home/Foo/log/nginx 
+1

chiedo il motivo per cui 'Nginx' tenta di accedere a un altro, non il file di log degli errori di un problema di permessi. Anche se c'è un problema di autorizzazione. Penso che l'errore mostri un errore nel file che ho impostato nel file di configurazione ('/ home/Foo/log/nginx') non'/var/log/nginx/error.log'. – SangminKim

+1

nginx sta tentando di aprire il registro degli errori predefinito prima di leggere la direttiva per inserire il registro altrove e l'utente Foo non dispone dell'autorizzazione per accedere a tale posizione. Ecco perché stai ricevendo il primo avviso. Inoltre appare la directory/home/Foo/run/non è scrivibile, o non esiste. Perché non usare solo le posizioni predefinite? Cosa stai cercando di fare esattamente? – cantelope

3

Questo è vecchio ... ma ho attraversato lo stesso dolore e qui è la mia soluzione.

Come si può vedere il registro è un avviso, non un errore bloccante:

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 

Non dovrebbe essere un problema :) Nginx piace solo per controllare che il file all'avvio ...

Basta usare l'opzione -p. Qualcosa di simile a lanciare Nginx localmente funziona per me:

nginx -c /etc/nginx/nginx.conf -g 'daemon off;' -p /home/Foo/log/nginx 
+0

Non ha funzionato per me – shailenTJ

+0

@shailenTJ: Qual è l'errore che ottieni? – RicLeal

Problemi correlati