Hướng dẫn php-fpm memory limit - giới hạn bộ nhớ php-fpm

Hướng dẫn php-fpm memory limit - giới hạn bộ nhớ php-fpm

Nội dung chính ShowShow

  • 1. Xác định file php.ini
  • 2. Tăng giá trị memory_limit
  • 3. Khởi động lại dịch vụ PHP
  • 4. Cấu hình giá trị memory_limit
  • Tăng giới hạn bộ nhớ PHP thông qua tệp (php.ini)
  • Tăng giới hạn bộ nhớ PHP thông qua .htaccess
  • Tăng giới hạn bộ nhớ PHP thông qua hàm ini_set ()
  • Tăng giới hạn bộ nhớ PHP cho cPanel
  • Làm cách nào để tăng giới hạn bộ nhớ PHP?
  • Giới hạn bộ nhớ tối đa cho PHP là gì?
  • Làm cách nào để kiểm tra giới hạn bộ nhớ PHP của tôi?
  • Làm cách nào để tăng giới hạn bộ nhớ trong WP Config 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 (do ta quy định trong php.ini hoặc trong code/.htaccess thông qua giá trị biến “memory_limit” được lập trình viên/quản trị viên quy định). 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. 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 (do ta quy định trong php.ini hoặc trong code/.htaccess thông qua giá trị biến “memory_limit” được lập trình viên/quản trị viên quy định). 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. 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 (do ta quy định trong php.ini hoặc trong code/.htaccess thông qua giá trị biến “memory_limit” được lập trình viên/quản trị viên quy định). 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, ta thường có 2 cách :– 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 sao PHP tiến trình lại chiếm nhiều bộ nhớ đến vậy (tất nhiên là mức bộ nhớ giới hạn cho tiến trình phải phù hợp)– 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 sao PHP tiến trình lại chiếm nhiều bộ nhớ đến vậy (tất nhiên là mức bộ nhớ giới hạn cho tiến trình phải phù hợp)
– 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 sao PHP tiến trình lại chiếm nhiều bộ nhớ đến vậy (tất nhiên là mức bộ nhớ giới hạn cho tiến trình phải phù hợp)

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 MB8388608 Bytes Exhausted – 8 MB8388608 Bytes Exhausted – 8 MB
  • PHP: Fatal Error: Allowed Memory Size of 16777216 Bytes Exhausted – 16 MB16777216 Bytes Exhausted – 16 MB16777216 Bytes Exhausted – 16 MB
  • PHP: Fatal Error: Allowed Memory Size of 33554432 Bytes Exhausted – 32 MB33554432 Bytes Exhausted – 32 MB33554432 Bytes Exhausted – 32 MB
  • PHP: Fatal Error: Allowed Memory Size of 67108864 Bytes Exhausted – 64 MB67108864 Bytes Exhausted – 64 MB67108864 Bytes Exhausted – 64 MB
  • PHP: Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted – 128 MB134217728 Bytes Exhausted – 128 MB134217728 Bytes Exhausted – 128 MB
  • PHP: Fatal Error: Allowed Memory Size of 268435456 Bytes Exhausted – 256 MB268435456 Bytes Exhausted – 256 MB268435456 Bytes Exhausted – 256 MB
  • PHP: Fatal Error: Allowed Memory Size of 536870912 Bytes Exhausted – 512 MB536870912 Bytes Exhausted – 512 MB536870912 Bytes Exhausted – 512 MB
  • PHP: Fatal Error: Allowed Memory Size of 1073741824 Bytes Exhausted – 1 GB1073741824 Bytes Exhausted – 1 GB1073741824 Bytes Exhausted – 1 GB

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

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.

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

memory_limit = 128M

Thành

memory_limit = 256M

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

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:.htaccess với nội dung như sau:.htaccess với nội dung như sau:

#vi ./.htaccess

php_value memory_limit 256M

Câu hỏi

Nội dung chính

  • Tăng giới hạn bộ nhớ PHP thông qua tệp (php.ini)
  • Tăng giới hạn bộ nhớ PHP thông qua .htaccess
  • Tăng giới hạn bộ nhớ PHP thông qua hàm ini_set ()
  • Tăng giới hạn bộ nhớ PHP cho cPanel
  • Làm cách nào để tăng giới hạn bộ nhớ PHP?
  • Giới hạn bộ nhớ tối đa cho PHP là gì?
  • Làm cách nào để kiểm tra giới hạn bộ nhớ PHP của tôi?
  • Làm cách nào để tăng giới hạn bộ nhớ trong WP Config PHP?

Chỉnh sửa WP-Config của bạn.Mở tệp wp-config.php và tìm kiếm chuỗi văn bản này: xác định ('wp_memory_limit', '32m'); sau đó, sửa đổi nó để đọc xác định ('wp_memory_limit', '128m');Bạn có thể lên cao tới 256MB, nhưng trong hầu hết các trường hợp, bạn sẽ không cần nhiều bộ nhớ này.Open the wp-config.php file and search for this text string: define('WP_MEMORY_LIMIT', '32M');Then, modify it to read define('WP_MEMORY_LIMIT', '128M'); You can go as high as 256MB, but in most cases, you won't need this much memory.

Câu hỏi

Nội dung chính

Tăng giới hạn bộ nhớ PHP thông qua tệp (php.ini)

Xin chào

Tôi đang sử dụng một giọt 1GB với hạt nhân hiện tại: Ubuntu 14.04 x64 Vmlinuz-3.13.0-24-Generic (1221)

  • Sử dụng phpinfo (), tôi đã xác định tệp php.ini hiện đang được tải và đã cập nhật thuộc tính Memory_Limit lên 512m từ 128.
php_admin_value[memory_limit] = 512M
php_value[memory_limit] = 512M
  • Tệp này là /etc/php5/fpm/php.ini

  • Mặc dù thực hiện thay đổi này (và tất nhiên là khởi động lại các dịch vụ NGINX và PHP5 -FPM - cũng như khởi động lại toàn bộ máy chủ sau mỗi lần thay đổi), giá trị được hiển thị trong phpinfo () vẫn ở mức 128m

  • Những thứ khác mà tôi đã thử (một lần nữa, đã khởi động lại/khởi động lại các dịch vụ):

Thêm các giá trị sau vào /etc/php5/fpm/php-fpm.conf

Thêm tệp user.ini trong /etc/php5/fpm/conf.d/ (vì thư mục này được quét cho các tệp cấu hình khác) - và thêm bộ nhớ_limit với bộ nhớ 512m


Chỉnh sửa /etc/php5/cli/php.ini với cùng giá trị 512m, mặc dù tệp này không được sử dụng.

Thêm tệp php.ini với giá trị bộ nhớ được cập nhật bên trong gốc của thư mục trang webMarkdown to format your answer.Markdown to format your answer.

Tôi hoàn toàn bối rối, và nếu ai đó có thể cung cấp bất kỳ hiểu biết nào hoặc các bước khắc phục sự cố hơn nữa, tôi sẽ rất đánh giá cao!!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Cảm ơn


Gửi câu trả lời

Bạn có thể làm bất cứ điều gì từ dòng lệnh nếu bạn thực sự đầu tư vào việc giải quyết vấn đề. Tuy nhiên, đối với những gì bạn muốn làm, một vài lệnh đơn giản có thể giúp bạn hoàn thành mục tiêu:

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
1,
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
2 và lý tưởng nhất là
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
3.

Để xem giá trị hiện tại của một cái gì đó, hãy sử dụng

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
1:
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini

Hãy chắc chắn thay thế

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
5 bằng bất kỳ phiên bản nào bạn muốn xem tại thời điểm đó.

Để thay thế một giá trị hiện có, hãy sử dụng

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
2:
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini

Một lần nữa, thay thế

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
5 bằng phiên bản bạn muốn cập nhật và bit
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
8 vô lý với giá trị thực tế bạn muốn đặt.

Khi điều này được thực hiện, hãy khởi động lại Apache với:

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
1

Bây giờ bạn có tất cả các yếu tố cơ bản cần thiết để viết một tập lệnh tùy chỉnh để hoàn thành mục tiêu của bạn và, có lẽ, đi xa hơn một chút bằng cách làm cho nó hoạt động với bất kỳ cài đặt hợp lệ nào. Ví dụ:

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
2

Lưu ý rằng đó là một ý tưởng tốt để tạo bản sao lưu của tệp

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 trước khi thực hiện các thay đổi. Đây là nơi
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
3 là bạn của bạn.

Tôi đang chạy tập lệnh PHP qua thiết bị đầu cuối và tôi nhận được thông báo lỗi này

sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
1.

Vì vậy, sau đó tôi đã thêm

sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
2 vào tệp PHP và điều đó không hoạt động. Sau đó, tôi chạy
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
3 để xem tệp CLI đã tải nào (/etc/php/7.4/cli/php.ini) đang được sử dụng và sau khi chỉnh sửa tệp nói rằng tôi thấy rằng không có giới hạn bộ nhớ được đặt trong đó
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
4

Tôi không biết chuyện gì đang xảy ra (không phải là người hiểu biết rất nhiều). Nó đang vẽ kết luận rằng nó chỉ có 512m bộ nhớ có sẵn?

EDIT #1: Tôi cũng đã thực hiện một

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
95 cho biết tệp
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 là tại
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
7, vì vậy tôi cũng đã chỉnh sửa tệp đó, vẫn nhận được kết quả tương tự (khởi động lại Apache và cũng bắt đầu một cửa sổ Terminal mới): I also did a 5 cho biết tệp
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 là tại
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
7, vì vậy tôi cũng đã chỉnh sửa tệp đó, vẫn nhận được kết quả tương tự (khởi động lại Apache và cũng bắt đầu một cửa sổ Terminal mới): I also did a
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
5 which said the
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 file is at
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
7 so I edited that file as well, still getting the same result (restarted apache and initiated a new terminal window as well)5 cho biết tệp
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 là tại
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
7, vì vậy tôi cũng đã chỉnh sửa tệp đó, vẫn nhận được kết quả tương tự (khởi động lại Apache và cũng bắt đầu một cửa sổ Terminal mới)
: I also did a
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
5 which said the
grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
9 file is at
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
7 so I edited that file as well, still getting the same result (restarted apache and initiated a new terminal window as well)

Chỉnh sửa #2: Tập lệnh được chạy bởi

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
98: the script is run by 8: the script is run by
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
88: the script is run by
sed -i 's,^memory_limit =.*$,memory_limit = 8192M,' /etc/php/7.4/apache2/php.ini
8

Ubuntu 20, Php 7.4

PHP đặt giới hạn về số lượng tập lệnh PHP bộ nhớ được phép sử dụng để tập lệnh sử dụng nhiều bộ nhớ sẽ không làm giảm hệ thống. PHP sẽ thoát và ném lỗi sau khi đạt đến giới hạn;

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
7

Bạn có thể tăng giới hạn bộ nhớ nếu các tập lệnh PHP của bạn yêu cầu để tránh lỗi. Một số phương pháp để tăng giới hạn bộ nhớ trong PHP đang định cấu hình tệp php.ini hoặc .htaccess và sử dụng hàm ini_set (). CPanel cung cấp tùy chọn để định cấu hình giới hạn bộ nhớ PHP từ giao diện web.

Các phương pháp để tăng giới hạn bộ nhớ PHP:

Tăng giới hạn bộ nhớ PHP thông qua tệp (php.ini)

Phương pháp này sẽ áp dụng cho tất cả các tập lệnh PHP chạy trong hệ thống. Đó là một phương pháp tốt để làm theo nếu bạn không lưu trữ nhiều hệ thống trong một máy chủ duy nhất.

  1. Mở tệp cấu hình PHP bằng trình soạn thảo văn bản ưa thích của bạn.

    grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
    
    8
  2. Tìm kiếm Chỉ thị Memory_Limit trong tệp cấu hình.

    grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
    
    9
  3. Đặt giá trị giới hạn bộ nhớ với đơn vị thích hợp.

    grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
    
    0
  4. Khởi động lại máy chủ web của bạn để các thay đổi có hiệu lực.

Tăng giới hạn bộ nhớ PHP thông qua .htaccess

Để làm cho cài đặt chỉ hiệu quả cho một thư mục (hoặc dự án) nhất định, bạn có thể sử dụng tệp .htaccess để thực hiện thủ thuật. Để thực hiện việc này, định vị (hoặc tạo) .htaccess tệp trong thư mục tập lệnh PHP của bạn và thêm dòng sau;

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
1

Tăng giới hạn bộ nhớ PHP thông qua hàm ini_set ()

Đây có lẽ là phương pháp tốt nhất vì cài đặt chỉ áp dụng cho tập lệnh cụ thể và sẽ không cho phép các tập lệnh được viết kém khác tiêu thụ và lãng phí bộ nhớ của hệ thống.

Để làm điều này, thêm dòng sau trong tập lệnh PHP của bạn;

grep '^memory_limit ' /etc/php/7.4/apache2/php.ini
0

Tăng giới hạn bộ nhớ PHP cho cPanel

Bạn không có quyền truy cập vào tệp cấu hình của PHP nếu bạn lưu trữ hệ thống của mình trong cPanel, nhưng CPanel cung cấp tùy chọn để thay đổi cài đặt từ bảng điều khiển quản trị viên của nó.

Thảo luận về bài viết:

Nhận xét ẩn danh. Đăng nhập không bắt buộc.

Làm cách nào để tăng giới hạn bộ nhớ PHP?

Xác định vị trí PHP.Tệp INI được sử dụng bởi máy chủ web của bạn.Bạn có thể nhấp vào liên kết "Thông tin thêm" trên phần PHP của Trạng thái Drupal.....

Chỉnh sửa tham số Memory_Limit trong PHP.Tệp INI (thường trong một phần gọi là giới hạn tài nguyên).Hãy chắc chắn rằng bạn sử dụng M để chỉ định số lượng megabyte (không phải MB).....

Khởi động lại Apache ..

Giới hạn bộ nhớ tối đa cho PHP là gì?

Giới hạn bộ nhớ mặc định là 256m và điều này thường quá đủ cho hầu hết các nhu cầu.Nếu bạn cần tăng giới hạn này, bạn phải tạo tệp PHPRC.256M and this is usually more than sufficient for most needs. If you need to raise this limit, you must create a phprc file.256M and this is usually more than sufficient for most needs. If you need to raise this limit, you must create a phprc file.256M and this is usually more than sufficient for most needs. If you need to raise this limit, you must create a phprc file.

Làm cách nào để kiểm tra giới hạn bộ nhớ PHP của tôi?

php $ memory_limit = ini_get ('memory_limit');if (preg_match ('/^(\ d+) (.) $//$memory_limit = ini_get('memory_limit'); if (preg_match('/^(\d+)(.)$/$memory_limit = ini_get('memory_limit'); if (preg_match('/^(\d+)(.)$/$memory_limit = ini_get('memory_limit'); if (preg_match('/^(\d+)(.)$/

Làm cách nào để tăng giới hạn bộ nhớ trong WP Config PHP?

Chỉnh sửa WP-Config của bạn.Mở tệp wp-config.php và tìm kiếm chuỗi văn bản này: xác định ('wp_memory_limit', '32m'); sau đó, sửa đổi nó để đọc xác định ('wp_memory_limit', '128m');Bạn có thể lên cao tới 256MB, nhưng trong hầu hết các trường hợp, bạn sẽ không cần nhiều bộ nhớ này.Open the wp-config.php file and search for this text string: define('WP_MEMORY_LIMIT', '32M');Then, modify it to read define('WP_MEMORY_LIMIT', '128M'); You can go as high as 256MB, but in most cases, you won't need this much memory.Open the wp-config.php file and search for this text string: define('WP_MEMORY_LIMIT', '32M');Then, modify it to read define('WP_MEMORY_LIMIT', '128M'); You can go as high as 256MB, but in most cases, you won't need this much memory.Open the wp-config. php file and search for this text string: define('WP_MEMORY_LIMIT', '32M'); Then, modify it to read define('WP_MEMORY_LIMIT', '128M'); You can go as high as 256MB, but in most cases, you won't need this much memory.