Web kökünde hangi dosya izinlerini ayarlamalıyım?


53

Ubuntu Server 10.10 kullanıyorum ve Nginx web server'ı kurdum apt-get install nginx. Varsayılan bir web sayfası oluşturur /var/www/nginx-default/ve bu dizinin izinleri vardır drwxr-xr-x 2 root root.

Varsayılan siteye http://localhost/girdiğimde bu mesajı sayfada görüyorum 403 Forbidden.

Web sayfalarına erişebilmek için dosya izinlerini www kök dizininde nasıl ayarlamalıyım? Yoksa değiştirmek zorunda olduğum başka bir şey var mı?


NOT: Bütün tam yol son klasöre erişilebilir olmalıdır! Ortada bir klasör bile yok.
Lucio

Yanıtlar:


33

Genelde web kökündeki bir 755(ya da rwxr-xr-x) çubuğa yapıyorum, ancak dizininiz zaten ayarlanmış olduğundan, bununla karşılaştığınız sorun olduğunu sanmıyorum. nginxdizininize erişebilmelidir. Ardından soru erişmeye çalıştığınız dosyanın izinleri (veya varlığının) haline gelir. Dizininizdeki dosyaların, kullanıcı nginxolarak çalıştığı durumda okunabilir olması gerekir . Genellikle bu dosyaları bir 755dizine bırakıyorum (dizininkiyle aynı). Yaparak tüm dizini değiştirebilirsiniz sudo chmod -R 755 /var/www/nginx-default/.

Ancak dizinde bir dizin dosyası yoksa, aynı hatayı almaya devam edersiniz. Dizin dosyası, dizin listelerinin etkin olmadığı bir dizin talep ettiğinizde kullanılır. En yaygın endeks dosyasıdır index.html. Bu varsayılan, yapılandırmanızdaki gibi düzenlenebilir:

location / {
    index index.php;
}

Bu nginxdizinde sizin için bir dosya listesi oluşturmak istiyorsanız, dizin dizinlemeyi açmanız yeterlidir :

location  /  {
  autoindex  on;
}

Hayır index.htmlBu dizinde bir tane var.
Jonas

O zaman hangi izinleriniz index.htmlvar?
Jack M.

Teşekkürler, confiugration dosyası gerçekten işaret etti /var/www/ve oluşturuldu index.html, /var/www/nginx-default/böylece o dosyayı kopyalamak zorunda kaldım, daha cp /var/www/nginx-default/index.html /var/www/sonra siteyi web tarayıcımla ziyaret edebildim.
Jonas

56

Webroot grubunuzu, www-datanginx tarafından kullanılan kullanıcıya ve ayrıca php5-fpm olarak değiştirmenizi öneririm .

Örneğin:

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

benim kullanıcım kendi hesabınız olduğu (bu, dosyaları sudo olmadan webroot'unuza kolayca yerleştirmenizi sağlar).


Teşekkürler, komutlar sorunsuz bir şekilde 403 Forbiddenyerine getirildi , ancak yine de bir web tarayıcısı ile hesaplanırken alıyorum.
Jonas

@Jonas, sorunun ne olduğunu görmek için nginx hata günlüğünüzü kontrol etmenizi öneririm.
Peter Smit

Teşekkürler, hatayı buldum, hata günlüğündeydi. Jacks cevaplarına yorumumu gör.
Jonas

4
Peki ya yeni dosyalar?
mcont

@MatteoContrini chmod 2755 webdirectory/aynı izin ve haklarla saklandıkları için kullanıyorlar
saat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.