Quali autorizzazioni file devo impostare su web root?


53

Uso Ubuntu Server 10.10 e ho installato il web server Nginx con apt-get install nginx. Crea una pagina Web predefinita in /var/www/nginx-default/e quella directory dispone delle autorizzazioni drwxr-xr-x 2 root root.

Quando accedo al sito predefinito su http://localhost/ricevo questo messaggio sulla pagina 403 Forbidden.

Come devo impostare i permessi dei file sul root www in modo da poter accedere in sicurezza alle pagine web? O c'è qualcos'altro che devo cambiare?


NOTA: l' intero percorso completo della cartella finale deve essere accessibile! Nemmeno una cartella nel mezzo.
Lucio,

Risposte:


33

Di solito mi attengo a un 755(o rwxr-xr-x) sul mio web root, ma non penso che questo sia il problema che stai incontrando poiché la tua directory è già impostata su quello. nginxdovrebbe avere accesso alla tua directory. La domanda diventa quindi le autorizzazioni (o l'esistenza di) il file a cui stai tentando di accedere. I file all'interno della tua directory dovranno essere leggibili dall'utente in nginxesecuzione come. Di solito lascio questi file impostati su un 755(uguale alla directory). Puoi cambiare l'intera directory facendo sudo chmod -R 755 /var/www/nginx-default/.

Se non esiste un file indice nella directory, tuttavia, si otterrà comunque lo stesso errore. Il file indice viene utilizzato quando si richiede una directory in cui non sono abilitati gli elenchi di directory. Il file indice più comune è index.html. Questo valore predefinito può essere modificato nella tua configurazione, tuttavia, usando qualcosa come:

location / {
    index index.php;
}

Se vuoi nginxgenerare un elenco di file in quella directory per te, attiva semplicemente l' indicizzazione della directory , in questo modo:

location  /  {
  autoindex  on;
}

No, ho un index.htmlin quella directory.
Jonas,

Quali autorizzazioni index.htmlhai, quindi?
Jack M.

Grazie, il file di confiugrazione effettivamente indicato /var/www/e il generato è index.htmlstato inserito, /var/www/nginx-default/quindi ho dovuto copiare quel file con cp /var/www/nginx-default/index.html /var/www/dopo che ho potuto visitare il sito con il mio browser web.
Jonas,

56

Suggerirei di cambiare il gruppo del tuo webroot in www-data, l'utente usato da nginx e anche php5-fpm.

Per esempio:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

dove my-user è il tuo account (che ti consente di mettere facilmente i file nella tua webroot senza sudo).


Grazie, i comandi sono stati eseguiti senza problemi, ma ottengo ancora 403 Forbiddenquando lo accedo con un browser web.
Jonas,

@Jonas, suggerirei di controllare il registro degli errori di nginx per vedere quale fosse il problema.
Peter Smit,

Grazie, ho trovato l'errore, era nel registro degli errori. Vedi il mio commento alla risposta di Jacks.
Jonas,

4
E i nuovi file?
Mc il

@MatteoContrini lo utilizza in chmod 2755 webdirectory/modo da essere archiviato con gli stessi permessi e diritti
rhand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.