Tôi vừa nâng cấp Apache từ bản dựng 2003, lên bản 2.4.1 hoàn toàn mới, sạch sẽ. Tất cả có vẻ khá tốt ngoại trừ một điều rõ ràng:
Trong tệp httpd.conf của tôi, tôi có các mục sau:
<Directory />
AllowOverride none
Options FollowSymLinks
AuthType Basic
AuthName "Enter Password"
AuthUserFile /var/www/.htpasswd
Require valid-user
</Directory>
Điều này chỉ cho phép người dùng trong tệp xác thực được chỉ định truy cập vào máy chủ - giống như phiên bản cũ hơn của Apache. (Đúng?)
Tuy nhiên, nó không hoạt động. Yêu cầu được cấp mà không có xác thực được cung cấp. Khi tôi chuyển đăng nhập sang LogLevel Debug, đối với các truy cập, nó báo:
[Sat Mar 24 21:32:00.585139 2012] [authz_core:debug] [pid 10733:tid 32771] mod_authz_core.c(783): [client 192.168.1.181:57677] AH01626: authorization result of Require all granted: granted
[Sat Mar 24 21:32:00.585446 2012] [authz_core:debug] [pid 10733:tid 32771] mod_authz_core.c(783): [client 192.168.1.181:57677] AH01626: authorization result of <RequireAny>: granted
Tôi thực sự không biết điều này có nghĩa là gì - và tôi (theo hiểu biết tốt nhất của tôi) không có bất kỳ câu lệnh "Yêu cầu tất cả được cấp" hoặc "" trong bất kỳ tệp nào của tôi.
Bất kỳ ý tưởng tại sao điều này không hoạt động, hoặc nơi để gỡ lỗi ??
CẬP NHẬT:
Tôi có một virtualhost trên cổng SSL cho phép ủy quyền. Khi tôi đặt các mục tương tự bên trong
<proxy *>
mệnh đề trong cấu hình virtualhost, nó hoạt động . Nó dường như không hoạt động trong
<Directory>
mệnh đề. Sau đó tôi đã thử đặt theo các mệnh đề Thư mục khác (cụ thể cho các thư mục khác) và điều đó cũng không hoạt động.
CŨNG THẾ
Từ các câu hỏi của Shane bên dưới - Tôi đã thử sao chép khối "/" gốc vào thư mục "/ tmp". Thư mục / tmp hoạt động ĐÚNG !! Vì vậy - vấn đề này chỉ dành riêng cho thư mục gốc ???
<Directory>khối cụ thể hơn ở nơi khác trong cấu hình Apache của bạn được ưu tiên hơn khối mà bạn đã đặt /.
<Directory>khối nào khác mà bạn đã áp dụng cho các yêu cầu không hoạt động?