Apache2 userdir เปิดใช้งาน แต่ยังไม่มีสิทธิ์เข้าถึง


9

ฉันกำลังพยายามตั้งค่าเซิร์ฟเวอร์ apache บนแล็ปท็อป Kubuntu 13.04 ของฉัน ฉันได้ติดตั้งแพคเกจ apache2 แล้วและsudo a2enmod userdir; sudo service apache2 restartยังเมื่อฉันไปเยี่ยมhttp://localhost/~userมันพูดแบบนี้:

Forbidden

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

Apache/2.2.22 (Ubuntu) Server at localhost Port 80

ผลลัพธ์ของ 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"

ผลลัพธ์ของ 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_htmlไดเรกทอรีสำหรับผู้ใช้หรือไม่? ผู้ใช้ที่ทำงาน apache ได้รับอนุญาตให้อ่านหรือไม่?
จอร์แดน

@jordanm ใช่ฉันได้ตั้งค่าให้ 755 ยังพยายามที่ 777
QED

คำตอบ:


8

public_htmlไดเรกทอรีต้องมีสิทธิ์ของพวกเขาเช่นนี้เพื่อให้ผู้ใช้ที่ Apache ทำงานเป็นสามารถเข้าถึงได้มัน

$ chmod -R 755 ~/public_html

ยังไม่ทำงานใช่ไหม

หากคุณดูในบันทึกข้อผิดพลาด Apache คุณอาจเห็นบรรทัดดังนี้

[ศุกร์สิงหาคม 02 21:06:59 2013] [ข้อผิดพลาด] [ลูกค้า 127.0.0.1] (13) ปฏิเสธการอนุญาต: การเข้าถึง / ~ kaiyin ถูกปฏิเสธ

สิ่งนี้บอกคุณว่า Apache ไม่มีสิทธิ์ในการนำทางไปยังไดเรกทอรีผู้ใช้ของคุณ (~ kaiyin) ในตัวอย่างนี้

จะแก้ไขได้อย่างไร?

คุณต้องตรวจสอบให้แน่ใจว่าบิต read + execute ถูกตั้งค่าไว้สำหรับกลุ่มที่ Apache เป็นสมาชิกหรือบิตอื่น ๆ read + execute ถูกตั้งค่าไว้ในไดเรกทอรีของผู้ใช้เช่นกันเพื่อให้ Apache สามารถเข้าถึงpublic_htmlโฟลเดอร์ด้านล่าง

ตัวอย่าง

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

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

อ้างอิง


ฉันทำไปแล้ว แต่ฉันยังมีข้อห้าม 403
QED

@CravingSpirit - จัดทำบันทึก apache ( /var/log/httpd/access.log) และ ( /var/log/httpd/error.log) เพื่อดูว่ามีข้อความเพิ่มเติมใด ๆ อีกหรือไม่
slm

ฉันได้เพิ่มบันทึกลงในโพสต์
qed

@CrystalSpirit - สังเกตการเข้าถึงถูกปฏิเสธบน ~ kaiyin` ผู้ใช้ Apache ไม่สามารถเข้าถึงไดเรกทอรีระดับบนสุดของผู้ใช้ คุณต้องมีสิทธิ์ read + execute เพื่อให้สามารถเข้าถึงได้
slm

2
จริงๆแล้วคุณแทบไม่ต้องการ 755 711 หรือแม้กระทั่ง 710 กลุ่มข้อมูล www ควรทำกับผู้ปกครองของpublic_html; มันจะทำใน public_html เช่นกันหากคุณไม่ต้องการรายชื่อไฟล์มิฉะนั้น Apache จะต้องอ่านด้วย (เช่น 755/750 มากกว่า 711/710)
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>

/etc/apache2/mods-enabled/userdir.confให้แน่ใจว่าคุณมีการตั้งค่าที่ถูกต้องใน ผมได้รับอนุญาตปฏิเสธหลังจาก chmodding public_html userdir.confของฉันและก็ตัดสินใจที่จะตรวจสอบ ฉันสังเกตเห็นว่ามีการตั้งค่าสำหรับเวอร์ชัน apache ก่อนหน้านี้รวมถึงที่ใหม่กว่า ฉันรู้ว่าฉันกำลังใช้งานล่าสุดดังนั้นจึงเปิดใช้งานการตั้งค่าที่ใหม่กว่าและตอนนี้ทุกอย่างทำงานได้ดี


ขอบคุณที่รวมข้อมูล Apache <= 2.2 นั่นคือเหตุผลว่าทำไมมันไม่ทำงานสำหรับฉันและเป็นสิ่งที่ฉันต้องการ!
Wowfunhappy

0

นอกจากนี้คุณสามารถใช้/etc/hostsไฟล์เพื่อกำจัดความต้องการ URL ชั่วคราว หากมีการอ้างอิง URL ที่สมบูรณ์ในชุดรูปแบบหรือปลั๊กอิน (ถ้ามี) ไซต์จะไม่แสดงเนื้อหาในรูปแบบที่เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.