Apache2 kullanıcı dizini etkin, ancak yine de erişimi yok


9

Kubuntu 13.04 dizüstü bilgisayarımda bir apache sunucusu kurmaya çalışıyorum. Apache2 paketini kurdum ve sudo a2enmod userdir; sudo service apache2 restartyine de ziyaret ettiğimde http://localhost/~userşöyle bir şey söylüyor:

Forbidden

You don't have permission to access /~user on this server.

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

Sonucu tail /var/log/apache2/access.log

127.0.0.1 - - [02/Aug/2013:16:22:01 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:16:22:02 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:35:30 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 499 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:17:36:26 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /~kaiyin HTTP/1.1" 403 501 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"
127.0.0.1 - - [02/Aug/2013:21:05:17 +0200] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"

Sonucu tail /var/log/apache2/error.log

[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:05:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:54 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:06:59 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /~kaiyin denied
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Fri Aug 02 21:07:17 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

public_htmlKullanıcı için bir dizininiz var mı? Apache çalıştıran kullanıcının onu okuma izni var mı?
jordanm

@jordanm Evet, 755 olarak ayarladım, ayrıca
777'yi

Yanıtlar:


8

public_htmlDizinleri böylece kullanıcı Apache kullanıcılar erişebilir olarak çalıştığını bu gibi onların izinleri olması gerekir o:

$ chmod -R 755 ~/public_html

hala çalışmıyor mu?

Apache hata günlüklerinize bakarsanız şöyle bir satır görebilirsiniz:

[Cum 02 02:06:59 2013] [hata] [müşteri 127.0.0.1] (13) İzin reddedildi: / ~ kaiyin'e erişim reddedildi

Bu, Apache'nin bu örnekte kullanıcı dizinine (~ kaiyin) gitme iznine sahip olmadığını gösterir.

Bunu nasıl düzeltirim?

Apache'nin üyesi olduğu bir grup için okuma + yürütme bitlerinin veya Apache'nin public_htmlaşağıdaki klasöre erişebilmesi için kullanıcının dizininde okuma + yürütme bitlerinin de ayarlandığından emin olmanız gerekir .

Misal

/home
|-- [drwxr-x---]  /home/sam

/home/sam
|-- [drwxr-xr-x]  /home/sam/public_html

Referanslar


Bunu zaten yaptım, ama hala 403 yasakım var.
qed

@CravingSpirit - ek mesaj olup olmadığını görmek için apache günlüklerini ( /var/log/httpd/access.log) ve ( /var/log/httpd/error.log) kuyruğa alın .
slm

Günlüğü yayına ekledim.
qed

@CravingSpirit - ~ kaiyin`de erişim reddedildiğini fark ettiniz mi? Apache kullanıcısının, kullanıcıların en üst düzey dizinlerine erişimi yoktur. Bunlara erişebilmek için okuma + yürütme haklarına sahip olmanız gerekir.
slm

2
Aslında, neredeyse kesinlikle 755'e ihtiyacınız yok; 711 hatta 710 grup www-verileri public_html; dosya listelerine ihtiyacınız yoksa public_html'de de çalışır, aksi takdirde Apache'nin de okunması gerekir (711/710 yerine 755/750).
CVn

1
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root

  <Directory /home/*/public_html>
    AllowOverride All
    Options MultiViews Indexes SymLinksIfOwnerMatch
    <Limit GET POST OPTIONS>
      # Apache <= 2.2:
      #Order allow,deny
      #Allow from all

      # Apache >= 2.4:
      Require all granted
    </Limit>
    <LimitExcept GET POST OPTIONS>
      # Apache <= 2.2:
      #Order deny,allow
      #Deny from all

      # Apache >= 2.4:
      Require all denied
    </LimitExcept>
  </Directory>
</IfModule>

İçinde doğru ayarlara sahip olduğunuzdan emin olun /etc/apache2/mods-enabled/userdir.conf. Benim public_html chmodding sonra izin reddediliyordu ve sonra kontrol etmeye karar verdi userdir.conf. Daha önceki uygulamaların yanı sıra daha yeni apache sürümleri için ayarlar olduğunu fark ettim. En son çalıştırdığımı biliyordum, bu yüzden yeni ayarları etkinleştirdi ve şimdi her şey iyi çalışıyor


Apache <= 2.2 bilgisini eklediğiniz için teşekkür ederim, bu yüzden benim için çalışmıyor ve ihtiyacım olan şey!
Wowfunhappy

0

Ayrıca /etc/hosts, geçici URL ihtiyacını ortadan kaldırmak için dosyayı kullanabilirsiniz . Tema veya eklentide (varsa) URL'nin tamamı için referans varsa, site içeriği uygun biçimde göstermez.

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.