2010-02-07 29 views
8

Tôi đang sử dụng gói lưu trữ được chia sẻ trên ngăn xếp LAMP không có quyền truy cập trình bao.403 Bị cấm trên liên kết tượng trưng trong web root

Tôi có thể tạo các liên kết tượng trưng bằng chức năng symlink() của PHP.

Hãy nói rằng mục web root của tôi là /home/www/user1/public

Hãy nói rằng tôi có một thư mục thực tên /home/www/user1/public/real_dir

Và tôi tạo ra một liên kết tượng trưng tên /home/www/user1/public/fake_dir trỏ đến real_dir

Tại sao tôi lại nhận được một 403 Forbidden khi cố gắng truy cập www.mydomain.com/fake_dir nhưng không phải khi cố gắng truy cập www.mydomain.com/real_dir?

Nó không phải là một vấn đề quyền vì khi tôi tạo một tập tin trong PHP, tôi có thể truy cập tất cả các quyền.

Tôi đã thử tắt FollowSymlinks tắt và bật trong .htaccess (đã bật) nhưng không may mắn.

Có thể là FollowSymlinks được định nghĩa là không thể ghi đè trong tệp .htaccess? Hoặc là có cái gì khác để nhận thức được khi làm việc với các liên kết trong Apache?

Trả lời

4

Apache phải được định cấu hình để cho phép truy cập vào thư mục trên hệ thống tệp. Điều này phải được thực hiện bởi một quản trị viên hệ thống bằng cách chèn một thư mục <> chỉ thị trong các tập tin cấu hình apache (httpd.conf).

Vì thư mục thực nằm trong thư mục gốc nên phải truy cập được, nhưng FollowSymLinks có thể chưa được bật cho thư mục - điều này cũng phải được thêm vào chỉ thị < Directory>.

Xem http://httpd.apache.org/docs/2.0/mod/core.html#directory

+0

Vì vậy, nếu nó không được cấu hình theo cách đó, và 'FollowSymlinks' là tắt, cố gắng truy cập vào một liên kết tượng trưng (mặc dù mục tiêu cũng nằm trong thư mục gốc web) sẽ tăng 403? Đây có phải là lý do không? –

+0

Xin lỗi, tôi vừa đọc lại câu hỏi của bạn và thấy rằng thư mục thực nằm trong thư mục gốc của trang web, vì vậy nó sẽ có thể truy cập được, tuy nhiên có thể không cho phép FollowSymLinks. Tôi đã cập nhật câu trả lời của mình để phản ánh điều này. – Sam

+0

-1 Đây không phải là câu trả lời cho câu hỏi của OP. OP có vẻ hoàn toàn nhận thức được tùy chọn 'FollowSymlinks'. Nhưng anh ta hỏi liệu việc thiết lập này từ '.htaccess' có thể bị loại bỏ khỏi httpd.conf hay không. –

0

Đây là vấn đề bảo mật SELinux có thể xảy ra.

cat/selinux/thi hành nếu giá trị là 1, đặt thành 0, sau đó khởi động lại apache.

+0

OP không có quyền truy cập hệ vỏ, như đã nêu trong dòng đầu tiên của câu hỏi của anh ta. –

Các vấn đề liên quan