Chạy lệnh php với giới hạn bộ nhớ

Nếu bạn có một máy chủ với tài nguyên bộ nhớ thấp, có lẽ bạn đã quen thuộc với lỗi “Fatal error. Kích thước bộ nhớ cho phép là XXX byte đã hết…” khi bạn cố gắng chạy lệnh php cli hoặc trình soạn thảo

Chạy lệnh php

Tất nhiên, bạn có thể tránh điều này bằng cách thay đổi các tệp cấu hình php của mình [hoặc chính hoặc cục bộ

$ php -d memory_limit=-1 setup:upgrade
2]. Tuy nhiên, điều này không phải lúc nào cũng thực tế vì bạn sẽ cần khởi động lại máy chủ web

Vì vậy, giải pháp thay thế là sử dụng trực tiếp tùy chọn

$ php -d memory_limit=-1 setup:upgrade
3 trên dòng lệnh nơi bạn có thể đặt tùy chọn php một cách nhanh chóng 🙂

Đối với giới hạn bộ nhớ, bạn có thể chạy

$ php -d memory_limit= 

Trong đó

$ php -d memory_limit=-1 setup:upgrade
4 là giới hạn bộ nhớ thực mà bạn muốn sử dụng cho lệnh bạn sắp chạy và
$ php -d memory_limit=-1 setup:upgrade
5 là lệnh đó. Giới hạn bộ nhớ có thể giống như
$ php -d memory_limit=-1 setup:upgrade
0 hoặc
$ php -d memory_limit=-1 setup:upgrade
1 hoặc thậm chí bạn có thể loại bỏ giới hạn bằng cách sử dụng
$ php -d memory_limit=-1 setup:upgrade
2

Đây là mã cho thiết lập. lệnh nâng cấp không giới hạn bộ nhớ

$ php -d memory_limit=-1 setup:upgrade

Các tùy chọn dòng lệnh PHP hữu ích

Một tùy chọn php hữu ích khác là

$ php -d memory_limit=-1 setup:upgrade
3 hiển thị cho bạn phiên bản php mà bạn đang chạy trên dòng lệnh theo mặc định

$ php -v
PHP 7.3.20-1+0~20200710.65+debian9~1.gbpc9cbeb [cli] [built: Jul 10 2020 07:22:47] [ NTS ]
Copyright [c] 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright [c] 1998-2018 Zend Technologies
    with the ionCube PHP Loader [enabled] + Intrusion Protection from ioncube24.com [unconfigured] v10.3.2, Copyright [c] 2002-2018, by ionCube Ltd.
    with Zend OPcache v7.3.20-1+0~20200710.65+debian9~1.gbpc9cbeb, Copyright [c] 1999-2018, by Zend Technologies

Và -i nơi bạn liệt kê tương đương với hàm phpinfo[] ngay trên dòng lệnh

$ php -i
phpinfo[]
PHP Version => 7.3.20-1+0~20200710.65+debian9~1.gbpc9cbeb

System => Linux 471732.cloudwaysapps.com 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 [2020-07-05] x86_64
Build Date => Jul 10 2020 07:22:47
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File [php.ini] Path => /etc/php/7.3/cli
Loaded Configuration File => /etc/php/7.3/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.3/cli/conf.d
Additional .ini files parsed => /etc/php/7.3/cli/conf.d/05-ioncube.ini,
/etc/php/7.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.3/cli/conf.d/10-opcache.ini,
/etc/php/7.3/cli/conf.d/10-pdo.ini,
/etc/php/7.3/cli/conf.d/15-xml.ini,
/etc/php/7.3/cli/conf.d/20-apcu.ini,
/etc/php/7.3/cli/conf.d/20-bcmath.ini,
/etc/php/7.3/cli/conf.d/20-bz2.ini,
/etc/php/7.3/cli/conf.d/20-calendar.ini,
/etc/php/7.3/cli/conf.d/20-ctype.ini,
/etc/php/7.3/cli/conf.d/20-curl.ini,
/etc/php/7.3/cli/conf.d/20-dba.ini,
/etc/php/7.3/cli/conf.d/20-dom.ini,
/etc/php/7.3/cli/conf.d/20-enchant.ini,
/etc/php/7.3/cli/conf.d/20-exif.ini,
...

Đang chạy nhà soạn nhạc

Nếu bạn đã cài đặt trình soạn thảo trên máy chủ của mình và bạn đang trực tiếp chạy lệnh trình soạn thảo, bạn sẽ không thể sử dụng chiến lược trên

Cách để tránh điều này là tải xuống trình soạn thảo và chạy nó bằng lệnh php. Làm sao?

Cài đặt trình soạn thảo trong thư mục hiện tại của bạn bằng cách chạy các lệnh sau [lấy từ getcomposer. tổ chức]

________số 8

Việc sử dụng php

$ php -d memory_limit=-1 setup:upgrade
4 thay vì nhà soạn nhạc. Vì bạn thực sự đang chạy trình soạn thảo qua php nên bạn có thể sử dụng tùy chọn -d để thay đổi giới hạn bộ nhớ 🙂

Ghi chú. Việc tăng 'Giới hạn bộ nhớ Php' khác với việc tăng giới hạn kích thước 'PHP-upload'. Bạn có thể học cách tăng kích thước tải lên tại đây

Yêu cầu bộ nhớ PHP tiêu chuẩn cho lõi Drupal là tối thiểu. Các trang web chạy nhiều mô-đun đóng góp, hoặc đặc biệt là những mô-đun sử dụng nhiều bộ nhớ, sẽ cần nhiều hơn. Có một số kỹ thuật để tăng giới hạn bộ nhớ PHP và bạn chỉ cần sử dụng một trong số chúng. Cái phù hợp với bạn tùy thuộc vào cấu hình hệ thống của bạn

Giới hạn bộ nhớ phù hợp điển hình cho PHP chạy Drupal là 128 MB cho mỗi quy trình;

Thường xảy ra trường hợp phần quản trị của một trang web hoặc một trang cụ thể sử dụng nhiều bộ nhớ hơn các trang khác. Nếu đúng như vậy, bạn có thể tăng giới hạn bộ nhớ một cách có điều kiện dựa trên URL của trang

Mối quan hệ giữa giới hạn bộ nhớ và khả năng mở rộng

Điều quan trọng là phải hiểu rằng việc tăng dung lượng bộ nhớ mà mỗi quy trình PHP có thể sử dụng sẽ làm giảm số lượng quy trình đồng thời có thể chạy. Các quy trình đồng thời là chìa khóa cho số lượng yêu cầu trang tối đa mà bạn có thể phân phối tại bất kỳ thời điểm nào

Ví dụ: giả sử một máy chủ có 2 GB bộ nhớ trống cho PHP sau khi tính đến các quy trình khác đang chạy trên đó [HĐH, Apache, v.v.]

Giới hạn bộ nhớ PHP128MB256MB512MBSố tiến trình đồng thời tối đa1684

Giới hạn bộ nhớ/mối quan hệ đồng thời với RAM 2GB

Cách thay đổi giới hạn bộ nhớ

php. ban đầu

Đây là phương pháp được đề xuất nếu bạn có quyền truy cập vào tệp php của máy chủ. ban đầu. Điều này sẽ không thực hiện được trong một số môi trường lưu trữ được chia sẻ, mặc dù máy chủ của bạn có thể điều chỉnh nó cho bạn. Lưu ý rằng thay đổi này sẽ ảnh hưởng đến tất cả các trang web và tập lệnh PHP trên máy chủ

  1. Xác định vị trí php. 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 trang trạng thái Drupal. hiển thị trang phpinfo[]. Định vị tệp cấu hình [php. ini] Hàng đường dẫn trên trang đó. Trong quá trình cài đặt, Drupal kiểm tra Giới hạn bộ nhớ PHP và nếu nó nhỏ hơn 64M, một thông báo lỗi cũng cung cấp đường dẫn đến tệp php. tập tin ini
  2. Chỉnh sửa tham số memory_limit trong php. ini [thường nằm trong phần có tên là Giới hạn tài nguyên]. Đảm bảo bạn sử dụng M để chỉ định số megabyte [không phải
    $ php -d memory_limit=-1 setup:upgrade
    6]

    $ php -d memory_limit=-1 setup:upgrade
    7
    Nếu chưa có phần này, hãy đặt dòng trên vào cuối tệp.

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

php. ini trong thư mục gốc của Drupal

Thêm dòng sau vào php. ini trong thư mục gốc Drupal của bạn.
______18
Điều này sẽ chỉ hoạt động nếu PHP đang chạy dưới dạng CGI/FastCGI.

người sử dụng. ini trong thư mục public_html [đối với PHP 5. 3 trở lên]

PHP 5. 3+ cho phép bạn thay đổi giới hạn bộ nhớ bằng cách đặt một. người sử dụng. ini trong thư mục public_html.
Chỉ cần tạo tệp trên và nhập dòng sau vào đó.
______18
Một số máy chủ cPanel chỉ chấp nhận phương pháp này.

Hai giải pháp tiếp theo bị hạn chế hơn về phạm vi và trong một số trường hợp, có thể là những lựa chọn phù hợp hơn là ảnh hưởng đến tất cả các trang web

htaccess

chỉnh sửa. htaccess trong thư mục gốc của Drupal. Hãy tìm phần

$ php -d memory_limit=-1 setup:upgrade
0

và ngay sau đó thêm dòng sau.
______20

Phương pháp này sẽ chỉ hoạt động nếu PHP đang chạy dưới dạng mô-đun Apache

cài đặt. php

Nếu Drupal đã được cài đặt, bạn có thể chỉnh sửa trang web/mặc định/cài đặt. php. Phương pháp này sẽ chỉ ảnh hưởng đến trang web sử dụng tệp này.
Tìm phần cài đặt PHP và thêm dòng sau vào cuối phần đó.
______21

Trong một số môi trường lưu trữ được chia sẻ, quyền truy cập vào cài đặt giới hạn bộ nhớ PHP bị hạn chế. Nếu bạn không thể tự mình thực hiện thay đổi, vui lòng yêu cầu nhà cung cấp dịch vụ lưu trữ điều chỉnh nó cho bạn hoặc tìm một máy chủ mới cho phép linh hoạt hơn

Đối với một số máy chủ đổi tên php. ini sang php5. ini có thể cần thiết

Một số dịch vụ lưu trữ yêu cầu dòng sau trong. htaccess để bật php. tập tin ini.
______22

Đối với một số máy chủ [CrazyDomains], bạn có thể cần thêm các dòng sau vào tệp php. ini [nếu chúng chưa có]

$ php -d memory_limit=-1 setup:upgrade
1

sửa đổi php. ini trong môi trường máy chủ cục bộ

Đối với MAMP, xem http. // drupal. org/node/66187 đặc biệt là "Tùy chọn. Điều chỉnh giới hạn bộ nhớ của PHP cho tập lệnh" [lưu ý sự khác biệt đối với MAMP Pro]

Nếu bạn đang sử dụng XAMPP/WAMP, có thể có hai PHP. ini [một trong thư mục PHP và một trong Apache/bin]. Để thay đổi giới hạn bộ nhớ của bạn, hãy chỉnh sửa tệp trong thư mục XAMPP/Apache/bin

Kiểm tra thay đổi của bạn đã có hiệu lực

Trong mọi trường hợp, bạn phải trả tiền để đảm bảo rằng thay đổi của bạn đang thực sự hoạt động. Kiểm tra báo cáo trạng thái của Drupal để xác minh rằng bộ nhớ của bạn thực sự là thứ bạn muốn. Nếu thay đổi của bạn dường như không hoạt động, hãy kiểm tra kỹ vị trí của php. ban đầu. Một số hệ thống có nhiều bản sao của tệp đó ở những nơi khác nhau. Chỉ một cái được sử dụng và những cái còn lại là cá trích đỏ

XHprof là một giải pháp tốt để tìm mức tiêu thụ bộ nhớ cao. Xem trang này để biết thêm hướng dẫn về cách cài đặt và sử dụng nó. http. //các nhóm. drupal. tổ chức/nút/82889

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

Xác định vị trí php. 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 trang trạng thái Drupal. .
Chỉnh sửa tham số memory_limit trong php. ini [thường nằm trong phần có tên là Giới hạn tài nguyên]. Đảm bảo 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à bao nhiêu?

Giới hạn bộ nhớ mặc định là 256M và giới hạn này thường là 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 một tệp phprc.

Giới hạn bộ nhớ PHP nghĩa là gì?

Giới hạn bộ nhớ PHP là bộ nhớ máy chủ tối đa mà mỗi tập lệnh PHP có thể mở rộng . Theo tài liệu PHP. “Điều này đặt bộ nhớ theo byte mà tập lệnh được phép chỉ định. Điều này tạo ra sự khác biệt trong việc ngăn chặn các tập lệnh được soạn không hiệu quả chiếm hết bộ nhớ có thể truy cập trên máy chủ. ”

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

Để tăng cài đặt giới hạn bộ nhớ PHP, hãy chỉnh sửa PHP của bạn. tệp ini. Tăng giá trị mặc định [ví dụ. Dung lượng bộ nhớ tối đa mà tập lệnh có thể tiêu thụ = 128MB] của dòng giới hạn bộ nhớ PHP trong php. ini .

Chủ Đề