Điểm:0

Macos thay đổi người dùng trong Apache phá vỡ PHP SESSION kiên trì

lá cờ dz

Tôi đang sử dụng cục bộ máy chủ Apache tích hợp Macos để phát triển. Tôi đã phát triển một trang web sử dụng PHP và dựa vào cookie phiên để duy trì các phiên. Với thiết lập Apache mặc định, mọi thứ đều hoạt động tốt và dữ liệu phiên được duy trì chính xác.

Để dễ phát triển, tôi muốn thay đổi Người dùng và Nhóm trong Apache thành tên người dùng và nhóm của mình. Tôi đã làm điều này bằng cách chỉnh sửa /etc/apache2/httpd.conf, theo hướng dẫn tôi tìm thấy trên mạng. Đã khởi động lại Apache và mọi thứ dường như hoạt động tốt - <?php print `whoami` ?> hiển thị tên người dùng dự kiến ​​(của tôi.)

TUY NHIÊN, bây giờ tôi đã bắt đầu quan sát thấy rằng biến $_SESSION không còn tồn tại nữa.

Tôi đã tìm /etc/php.ini để xem liệu có dòng nào bao gồm '_www' (nhóm và người dùng Apache mặc định) hay không vì nghĩ rằng cấu hình PHP cũng phải được thay đổi để đồng bộ hóa mọi thứ. Tuy nhiên, grep không trả về dòng nào như vậy.

Bất cứ ai biết những gì đang xảy ra ở đây, và làm thế nào để khắc phục điều này?

CHỈNH SỬA: Tôi đã kiểm tra id phiên session_id() và đã xác minh rằng các id phiên giống nhau đang được sử dụng giữa các trang.

Chris avatar
lá cờ it
Có thể là sự cố cấp phép trên thư mục phiên. Bạn có thấy điều gì đó trong nhật ký không? Bạn có thể thử đặt một thư mục khác (`session.save_path` trong php.ini)
lá cờ dz
Trên thực tế, cách khắc phục hóa ra đơn giản hơn thế. Tất cả những gì tôi phải làm là xóa cookie trong trình duyệt của mình :-) Gợi ý của bạn về vấn đề quyền đã đưa ra manh mối tôi cần. Cảm ơn.
Điểm:0
lá cờ dz

PHP lưu tệp phiên trong/var/tmp, vd. sess_1aas3b0jgjbbsoktg3fcehu5je. Các tệp phiên ở đây có 600 quyền, do đó CHỈ chủ sở hữu mới có thể đọc hoặc ghi vào chúng. Trình duyệt lưu cookie phiên với cùng một id. Trước khi thay đổi người dùng và nhóm trong cấu hình Apache, id phiên được viết là _www với tư cách là chủ sở hữu. Sau khi thay đổi người dùng và nhóm trong cấu hình Apache, nếu cookie phiên vẫn còn tồn tại trong trình duyệt, nó sẽ yêu cầu PHP truy cập id đó, chỉ là bây giờ người dùng là xyz và nó không thể đọc hoặc ghi tệp đó.

Giải pháp đơn giản là xóa cookie phiên trong trình duyệt (hoặc đợi cho đến khi cookie hết hạn.) Bây giờ PHP sẽ tạo tệp phiên mới với chủ sở hữu mới xyz.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.