Sửa lỗi PHP Fatal Error: Allowed Memory Size Exhausted

Tăng giới hạn Memory Limit PHP – Lỗi này nói cho ta biết rằng, các tiến trình ứng dụng PHP đang thực thi lượng dữ liệu lớn tiêu ngốn nhiều tài nguyên RAM bộ nhớ, nhưng bị giới hạn bởi tài nguyên bộ nhớ được phép cấp cho 1 tiến trình PHP thực thi (được thiết lập trong php.ini hoặc trong file .htaccess thông qua giá trị biến “memory_limit” ). Tiến trình yêu cầu được cấp thêm bộ nhớ để tiến trình PHP có thể hoạt động ổn định.



Vì vậy khi gặp lỗi này, bạn sẽ có 2 cách để sử lý:

  • Nâng mức giới hạn bộ nhớ cho tiến trình PHP cao hơn. Nâng giá trị “memory_limit“.
  • Kiểm tra lại source code website xem tiến trình lại chiếm nhiều bộ nhớ.

Nếu bạn không chắc mức giá trị cấu hình PHP memory limit đã set thì bạn có thể nhận biết dựa vào lỗi trả về từ PHP error. Sau đây là danh sách các mức cấu hình memory_limit thường sử dụng tương ứng, từ đây bạn có thể so sánh đối chiếu để nâng mức giá trị cấu hình :



  • PHP: Fatal Error: Allowed Memory Size of 8388608 Bytes Exhausted – 8 MB
  • PHP: Fatal Error: Allowed Memory Size of 16777216 Bytes Exhausted – 16 MB
  • PHP: Fatal Error: Allowed Memory Size of 33554432 Bytes Exhausted – 32 MB
  • PHP: Fatal Error: Allowed Memory Size of 67108864 Bytes Exhausted – 64 MB
  • PHP: Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted – 128 MB
  • PHP: Fatal Error: Allowed Memory Size of 268435456 Bytes Exhausted – 256 MB
  • PHP: Fatal Error: Allowed Memory Size of 536870912 Bytes Exhausted – 512 MB
  • PHP: Fatal Error: Allowed Memory Size of 1073741824 Bytes Exhausted – 1 GB

Cùng PhonuiIT.com tham khảo qua bài viết hướng dẫn tăng giới hạn Memory Limit PHP trong VPS nhé.

1. Xác định file php.ini

Bạn sẽ xác định vị trí file php.ini bằng lệnh command line sau :

php -i | grep "php.ini"

Loaded Configuration File => /usr/local/php56/lib/php.ini

tăng giới hạn Memory Limit

2. Tăng giá trị memory_limit

Giả sử trong ví dụ cấu hình này, giới hạn bộ nhớ là 128M, nhưng vẫn bị báo lỗi là không đủ thì ta sẽ nâng cấp thêm bộ nhớ cho tiến trình PHP trong điều kiện bộ nhớ RAM còn đủ xài.

 

Azdigi

vi /usr/local/php56/lib/php.ini

Tìm dòng sau: memory_limit = 128M

Memory Limit php

bạn tiến hành sửa thành

memory_limit = 256M

giới hạn Memory Limit

3. Khởi động lại dịch vụ PHP

Nếu PHP là module Apache thì khởi động lại Apache

/etc/init.d/httpd restart

Nếu PHP hoạt động như PHP-FPM.

/etc/init.d/phpfpm restart

Mình thì sử dụng directadmin chạy php-fpm56 và php-fpm70

Để chắc chắn restart đúng PHP mình gõ lệnh như sau:

cd /etc/init.d/

Sau đó restart các file sau:

/etc/init.d/directadmin restart
/etc/init.d/php-fpm56 restart
/etc/init.d/php-fpm70 restart

restart php

4. Cấu hình giá trị memory_limit

Trong trường hợp bạn không có quyền truy cập chính sửa file php.ini trên hệ thống, thì bạn có thể quy định mức giới hạn bộ nhớ bằng file .htaccess với nội dung như sau:

vi ./.htaccess

Thêm vào dòng sau:
php_value memory_limit 256M

Chúc các bạn thực hiện thành công.

4.8/5 - (100 bình chọn)



Nhận thông báo qua email
Nhân thông báo cho
guest
0 Bình luận
Bình chọn nhiều nhất
Mới nhất Cũ nhất
Inline Feedbacks
View all comments
0
Bạn thích bài viết này, viết bình luận nhé.x