Lỗi:
Lỗi nghiêm trọng: Kích thước bộ nhớ cho phép của các byte X hết (đã cố gắng phân bổ byte Y)
Để chuyển đổi byte X thành MB, chia cho 1024 * 1024 hoặc kiểm tra tại Wolfram .
xảy ra khi PHP cố gắng phân bổ byte Y, nhưng có giới hạn cứng đối với byte X được đặt bởi memory_limit
cài đặt cấu hình PHP .
Có thể kiểm tra giới hạn hiện tại bằng cách đi tới Quản trị »Báo cáo» Báo cáo trạng thái »PHP (URL /admin/reports/status/php
:) hoặc bằng cách in ini_get('memory_limit')
bằng PHP (lưu ý rằng giới hạn đó khác nhau đối với UI và CLI).
Để khắc phục, bạn cần giảm mức sử dụng tài nguyên của mình, ví dụ:
vô hiệu hóa mọi mô-đun phát triển mà bạn hiện không sử dụng (được khuyến nghị),
Điều này bao gồm: Devel, Devel Themer (nếu được bật).
vô hiệu hóa bất kỳ mô-đun nào bạn không sử dụng,
vô hiệu hóa các biến gỡ lỗi nhất định có thể ảnh hưởng đến tài nguyên bộ nhớ của bạn, ví dụ như một vài ví dụ với drush
:
drush -y vset rules_debug 0
drush -y vset rules_debug_log 0
vô hiệu hóa các phần mở rộng PHP nhất định, chẳng hạn như XDebug,
- cho phép bộ nhớ cache redis / memcached và một số bộ đệm PHP (ví dụ: OPCache / XCache),
- cuối cùng nếu ở trên sẽ không giúp - tăng
memory_limit
cấu hình PHP của bạn .
Nếu bạn quyết định tăng giới hạn bộ nhớ, rất nhiều người ở đây khuyên bạn nên thực sự hack lõi của bạn bằng cách dán mã PHP vào index.php
để tăng bộ nhớ PHP của bạn - đừng bao giờ làm thế ! Đó là một thực tế rất xấu.
Thay vào đó hãy chỉnh sửa settings.php
(hoặc settings.local.php
nếu bạn có nó) và dán đoạn mã sau vào cuối:
ini_set('memory_limit', '512M');
hoặc cách tốt hơn để làm điều này là chỉnh sửa tệp cấu hình PHP của bạn ( php.ini
) và thay đổi dòng sau:
memory_limit = 512M ; Maximum amount of memory a script may consume
Nếu bạn không chắc chắn bạn đang ở đâu php.ini
, hãy kiểm tra:
drush status
chỉ huy
- hoặc bằng cách đi tại
/admin/reports/status/php
.
Để điều tra thêm về những trang / thành phần nào đang sử dụng nhiều bộ nhớ nhất, bạn có các khả năng sau:
Để biết thêm thông tin, kiểm tra: