Yêu cầu Magento 2.x PHP memory_limit


11

Tôi nhận thấy rằng hướng dẫn sử dụng Magento 2.1 khuyến nghị memory_limit=2Gtrongphp.ini . Đó là một lượng bộ nhớ điên rồ, bộ nhớ đó có được phép cho mỗi yêu cầu HTTP không? Tôi nghi ngờ có bất kỳ nhà cung cấp dịch vụ lưu trữ nào cung cấp lượng bộ nhớ cho các tập lệnh PHP và chắc chắn làm cho Magento không thể sử dụng được cho việc lưu trữ được chia sẻ.

Có lẽ đó là một số tiền để thiết lập và di chuyển? Là số tiền đó thực sự cần thiết cho sản xuất?

Tôi cũng tìm thấy trong tài liệu:

Set the PHP memory limit.
Our detailed recommendations are: 
Compiling code or deploying static assets, 756M 
Installing and updating Magento components from Magento Marketplace, 2G 
Testing, 2G

Nó không đề cập đến khuyến nghị sản xuất. Những gì được đề nghị cho sản xuất?

Câu trả lời:


8

Như đoạn tài liệu bạn tìm thấy giải thích, 2Glà giới hạn bộ nhớ để bao gồm tất cả các trường hợp sử dụng có thể. Một số hoạt động (đặc biệt là các hoạt động dòng lệnh như thiết lập, kiểm tra và biên dịch) có thể chiếm một lượng bộ nhớ đáng kể tùy thuộc vào kích thước và độ phức tạp của cài đặt của bạn.

Một số điều cần lưu ý:

  1. memory_limitlà dung lượng bộ nhớ tối đa mà một yêu cầu PHP đã cho được phép lấy trước khi nó bị chấm dứt. Nó không phải là tổng số lượng bộ nhớ mỗi yêu cầu sẽ mất. Trong thực tế, hầu hết các yêu cầu trực diện sẽ chiếm ít bộ nhớ hơn (có thể là 60 MB hoặc ít hơn cho hầu hết các trang, danh mục, sản phẩm CMS), với một số ngoại lệ (thanh toán) mất nhiều lần hơn tùy thuộc vào tích hợp, tùy chỉnh, v.v.
  2. Một số máy chủ cho phép bạn đặt các giới hạn bộ nhớ khác nhau cho các yêu cầu web so với dòng lệnh. Nếu vậy, bạn nên có giới hạn CLI 2Gvà giới hạn web là 768Mhoặc ít hơn.
  3. Chính Magento cố gắng thực thi giới hạn 768M mặc định trên bảng, thông qua các quy tắc trong .htaccesspub/.htaccess: php_value memory_limit 756Mvà trong .user.ini:memory_limit = 756M
  4. Trang ' yêu cầu ngăn xếp công nghệ ' mà bạn có thể thấy về mức tối thiểu 2 GB đang nói về tổng bộ nhớ hệ thống , không phải giới hạn bộ nhớ PHP. Nếu bạn thử chạy Magento2 trên máy chủ riêng ảo có RAM dưới 2 GB (bao gồm cả trao đổi), bạn sẽ có một khoảng thời gian tồi tệ.
  5. Một môi trường dành riêng sẽ luôn tốt hơn so với lưu trữ chia sẻ, nhưng Magento2 hoạt động trên lưu trữ chia sẻ. Magento đã làm việc rộng rãi với một số nhà cung cấp dịch vụ lưu trữ phổ biến bao gồm GoDaddy để biến cài đặt bằng một cú nhấp chuột thành hiện thực. Ngoài ra còn có các máy chủ chuyên dụng Magento như Nexcess cung cấp dịch vụ chia sẻ ở mức cao hơn với một vài đô la.

Về điểm 4: trích dẫn của OP từ tài liệu "Cài đặt PHP bắt buộc", không phải là yêu cầu ngăn xếp công nghệ. devdocs.magento.com/guides/v2.1/install-gde/prereq/ Khăn Họ khuyên bạn nên thử nghiệm và cài đặt với bộ nhớ 2GB_limit.
không xác định

Tôi muốn thêm .user.inivào danh sách các tệp mà Magento sử dụng / tạo để thực thi giới hạn này. Cả trong gốc và trong pub/.
Bart Friederichs

Môi trường 2G được đề xuất khác biệt đáng kể so với 2G mỗi yêu cầu! Tôi không thể tưởng tượng cái sau có thể tồn tại cho một trang web bận rộn. Và ngay cả khi các dòng lệnh PHP hoạt động tiêu thụ 2G, đó là mã cực kỳ kém hiệu quả.
Đánh dấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.