Jalankan perintah php dengan batas memori

Jika Anda memiliki server dengan sumber daya memori rendah, Anda mungkin akrab dengan kesalahan “Kesalahan fatal. Ukuran memori yang diizinkan sebesar XXX byte telah habis…” saat Anda mencoba menjalankan perintah atau komposer php cli

Menjalankan perintah php

Tentu saja Anda dapat menghindari ini dengan mengubah file konfigurasi php Anda (baik php.ini utama atau lokal). Namun ini tidak selalu praktis karena Anda perlu me-restart server web

Jadi, alternatifnya adalah menggunakan opsi -d pada baris perintah secara langsung di mana Anda dapat mengatur opsi php dengan cepat 🙂

Untuk batasan memori yang dapat Anda jalankan

$ php -d memory_limit=<new limit> <command to run>

Di mana <new limit>_ adalah batas memori aktual yang ingin Anda gunakan untuk perintah yang akan Anda jalankan dan <command to run> adalah perintah itu. Batas memori dapat berupa

$ php -d memory_limit=-1 setup:upgrade
_0 atau
$ php -d memory_limit=-1 setup:upgrade
1 atau Anda bahkan dapat menghapus batasan dengan menggunakan
$ php -d memory_limit=-1 setup:upgrade
2

Berikut adalah kode untuk setup. perbarui perintah tanpa batasan memori

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

Opsi baris perintah PHP yang berguna

Opsi php lain yang berguna adalah

$ php -d memory_limit=-1 setup:upgrade
_3 yang menunjukkan versi php yang Anda jalankan pada baris perintah secara default

$ 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
_

Dan -i tempat Anda mencantumkan fungsi yang setara dengan phpinfo() tepat di baris perintah

$ 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,
...

Menjalankan komposer

Jika Anda telah menginstal komposer di server Anda dan Anda menjalankan perintah komposer secara langsung, Anda tidak akan dapat menggunakan strategi di atas

Cara untuk menghindarinya adalah dengan mengunduh komposer dan menjalankannya menggunakan perintah php. Bagaimana?

Instal komposer di direktori Anda saat ini dengan menjalankan perintah berikut (diambil dari getcomposer. org)

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
_

Penggunaan php

$ php -d memory_limit=-1 setup:upgrade
_4 bukan komposer. Karena Anda sebenarnya menjalankan komposer melalui php, Anda dapat menggunakan opsi -d untuk mengubah batasan memori 🙂

CATATAN. Kami sedang dalam proses memodifikasi struktur dan konfigurasi file untuk banyak tumpukan Bitnami. Karena perubahan ini, jalur file yang disebutkan dalam panduan ini dapat berubah tergantung pada apakah tumpukan Bitnami Anda menggunakan paket sistem Linux asli (Pendekatan A), atau jika itu merupakan instalasi mandiri (Pendekatan B). Untuk mengidentifikasi jenis instalasi Bitnami Anda dan pendekatan apa yang harus diikuti, jalankan perintah di bawah ini

 $ test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Output dari perintah menunjukkan pendekatan mana (A atau B) yang digunakan oleh instalasi, dan akan memungkinkan Anda untuk mengidentifikasi jalur, konfigurasi, dan perintah yang akan digunakan dalam panduan ini. Lihat FAQ untuk informasi lebih lanjut tentang perubahan ini

Pendekatan A. Instalasi Bitnami menggunakan paket sistem

Untuk memodifikasi nilai memori yang ditetapkan ke PHP, ubah nilai memory_limit di /opt/bitnami/php/etc/php. file ini

memory_limit = 1G

Ingatlah untuk me-restart server Anda untuk memuat ulang konfigurasi

Pendekatan B. Instalasi Bitnami mandiri

Ubah batas memori hanya untuk file konsol

Untuk mengubah nilai memory_limit untuk file konsol, ubah file /opt/bitnami/apps/orocrm/htdocs/bin/console dan edit baris ini ke nilai khusus Anda

ini_set('memory_limit', '1024M');

Ubah batas memori secara global

Untuk mengubah nilai memory_limit secara global untuk OroCRM, ubah file /opt/bitnami/apps/orocrm/htdocs/bin/console dan hapus baris ini

ini_set('memory_limit','800M');

Kemudian, atur nilai custom memory_limit seperti di bawah ini. Perhatikan bahwa ini akan menerapkan nilai memory_limit baru ke semua aplikasi di direktori /opt/bitnami/apps

Untuk memodifikasi nilai memori yang ditetapkan ke PHP, ubah nilai memory_limit di /opt/bitnami/php/etc/php. file ini

memory_limit = 128M

Perhatikan juga bahwa aplikasi Anda mungkin menggunakan. htaccess dan file konfigurasi Apache untuk mengonfigurasi batas memori PHP. Untuk memeriksanya, jalankan perintah ini

Bagaimana cara mengatur batas memori di PHP?

Temukan php. Ini file yang digunakan oleh server web Anda. Anda dapat mengklik tautan "informasi lebih lanjut" di bagian PHP halaman status Drupal. .
Edit parameter memory_limit di php. file ini (biasanya di bagian yang disebut Resource Limits). Pastikan Anda menggunakan M untuk menentukan jumlah megabyte (bukan MB ). .
Mulai ulang Apache

Berapa batas memori maksimum untuk PHP?

Batas memori default adalah 256M dan ini biasanya lebih dari cukup untuk sebagian besar kebutuhan. Jika Anda perlu menaikkan batas ini, Anda harus membuat file phprc.

Bagaimana cara kerja batas memori PHP?

PHP memory_limit adalah jumlah maksimum memori server yang boleh digunakan oleh setiap skrip PHP. Per dokumentasi PHP. “ Ini menetapkan jumlah maksimum memori dalam byte yang diizinkan untuk dialokasikan oleh skrip . Ini membantu mencegah skrip yang ditulis dengan buruk menghabiskan semua memori yang tersedia di server. ”

Bagaimana cara memeriksa batas memori di PHP?

Jika Anda menjalankan WordPress 5. 2 atau lebih tinggi, Anda dapat menggunakan alat Kesehatan Situs untuk memeriksa berapa batas memori PHP saat ini di situs Anda. Di dasbor WordPress Anda, buka “Alat” → “Kesehatan Situs” → “Info” dan gulir ke bawah ke bagian server . Di sini Anda dapat melihat bahwa batas memori PHP ada di server Anda.