Hướng dẫn fix lỗi Warning: SessionHandler::read(): trong Magento 2

Việc nhà phát triển Magento gặp lỗi hoặc thử một tính năng mới không phải là điều xa lạ. Có thể bạn cũng đang gặp phải lỗi SessionHandler::read(), điều này ảnh hưởng trực tiếp tới cửa hàng của bạn. Lỗi này thường xảy ra trong quá trình cài đặt, cũng có trường hợp xảy ra sau khi cài đặt. Để giúp bạn giải quyết vấn đề, trong bài viết này mình sẽ hướng dẫn bạn cách fix lỗi Warning: SessionHandler::read(): trong Magento 2.

Vấn đề

Trong quá trình cài đặt, bạn nhận được thông báo như sau:

Warning: SessionHandler::read(): open(..) failed: No such file or directory (2) ../magento2/lib/internal/Magento/Framework/Session/SaveHandler.php on line 74'
in ../magento2/lib/internal/Magento/Framework/App/ErrorHandler.php:67

Hoặc:

Warning: SessionHandler::read(): open(..., O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22

Đặc biệt là lỗi chỉ xảy ra trong các phiên bản cũ. Bạn sẽ không thấy exception này với các phiên bản từ 29/9/2015 trở lên.

Nguyên nhân

Điều này xảy ra khi tham số PHP session.save_handler của bạn được đặt thành một số session storage khác ngoài file (ví dụ: redis, memcached, v.v.).

Các giải pháp để sửa lỗi SessionHandler::read() trong Magento 2

1. Nâng cấp Magento 2

Vì lỗi này xảy ra ở những phiên bản cũ, nên bạn có thể khắc phục bằng cách cập nhật phiên bản mới.

Bạn có thể tham khảo bài viết: Hướng dẫn cập nhật phiên bản Magento 2.

Hoặc tham khảo trên trang chủ Magento: https://devdocs.magento.com/guides/v2.3/install-gde/install/cli/install-cli-uninstall.html#instgde-install-magento-update.

Nếu bạn không muốn nâng cấp thì có thể xem các cách dưới đây.

2. Chỉnh php.ini

Trước hết, bạn hãy xác định vị trí của php.ini bằng lệnh:

php -i | grep "Loaded Configuration File"

Thông thường các vị trí sẽ ở:

  • Đối với Ubuntu: /etc/php5/cli/php.ini
  • Đối với CentOS: /etc/php.ini

Đăng nhập với tư cách người dùng root . Bây giờ, bạn có thể mở tệp php.ini trong trình soạn thảo văn bản.

Tìm tới session.save_handler và thiết lập. Comment đoạn code:

;session.save_path = <path>

Đặt nó thành đường dẫn hệ thống file như sau:

session.save_handler = files

3. Chỉnh sửa env.php

Tìm tới file env.php theo đường dẫn app/etc. Sau đó thay thế đoạn code sau:

'session' =>
  array (
    'save' => 'files'
  ),

Thành đoạn code:

'session' =>
  array (
    'save' => 'db'
  ),

Như vậy là mình đã hướng dẫn xong cách fix lỗi Warning: SessionHandler::read(): trong Magento 2.

Cảm ơn bạn đã đọc bài viết.

4.7 3 votes
Article Rating

Callula Huy

Callula is the Marketing Executive at Magetop. With more than 5 years of copywriting under her belt, Callula is into creating valuable content that is straight to the point. Life student. Workaholic. Foreign languages and traveling aficionado.

Leave a Reply or put your Question here

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x