Tôi đang cố gắng hiểu tại sao Apache vẫn có thể phục vụ tệp PHP sau khi tôi đặt quyền 000 và cấp quyền sở hữu tệp gốc.Apache vẫn đang phục vụ tệp PHP với quyền không chính xác
Nếu tôi tạo tệp PHP thuộc sở hữu của máy chủ web có quyền 644, thì tệp được phân phát chính xác. Nếu sau đó tôi thay đổi quyền cho 000 và thay đổi quyền sở hữu thành root, tệp vẫn được cung cấp, nhưng tôi không nghĩ rằng nó nên được!
Nếu sau đó tôi khởi động lại Apache, tệp sẽ không được cung cấp. Tôi nhận được một 500 và các bản ghi lỗi grumbles về việc không thể mở một tập tin, đó là chính xác hành vi tôi mong đợi.
Sau khi khởi động lại, khi tệp không được phân phối, nếu tôi thay đổi quyền sở hữu trở lại máy chủ web và quyền trở lại 644, tệp sẽ được phân phát lại mà không cần phải khởi động lại apache.
Hành vi này chỉ đúng đối với các tệp PHP. Các tệp HTML hoạt động như tôi mong đợi, ngay sau khi bạn xóa quyền, các tệp không được phân phối.
Tôi đã đề xuất rằng Apache có thể đang duy trì một tệp xử lý trên tệp PHP và không thấy các thay đổi quyền cho đến khi khởi động lại. Tôi đã thử sử dụng lsof trên tệp, nhưng không thấy bất kỳ phần mô tả tệp mở nào.
Tôi cũng đã thử và thử nghiệm nơi tôi bắt đầu với quyền sở hữu máy chủ web và 644 quyền và kiểm tra tệp có thể được phân phối. Sau đó, tôi đổi tên tệp, thay đổi quyền thành 000 và quyền sở hữu thành thư mục gốc và sau đó di chuyển tệp trở lại. Sau đó, tệp là vẫn còn được phục vụ bởi Apache.
Có ai có thể làm sáng tỏ những gì đang xảy ra ở đây không?
Thử nghiệm với điều này: truy cập 'my.hostname/index.php' trước và sau khi thay đổi, sau đó truy cập' my.hostname/index.php? Itok = randomnumbers' nếu yêu cầu thứ hai không thành công thì nó sẽ lưu vào bộ nhớ đệm. – apokryfos
Bạn có chắc chắn trang web không được phục vụ từ bộ nhớ cache không? – dev0
@apokryfos Tôi đã kiểm tra và chắc chắn nó không phải là bộ nhớ đệm. Tôi đã thay đổi kịch bản để hiển thị thời gian tính bằng giây và hiển thị chuỗi truy vấn. Kết quả của các bài kiểm tra tôi đã mô tả trong bài đăng của tôi là giống nhau và thời gian đang được cập nhật và chuỗi truy vấn (mà tôi thay đổi mỗi lần) đang được hiển thị. – Dom