Apa gunanya batas memori di php?

Batas memori adalah pengaturan yang mengalokasikan ukuran memori tetap untuk mengeksekusi skrip. Pengaturan ini melindungi server dari skrip berkode buruk yang mengalokasikan ruang yang tidak perlu, sebagai imbalannya menghemat memori server selama penggunaan aplikasi dalam skala besar. Penyerang dapat melihat batas memori yang ditetapkan dengan menjalankan fungsi phpinfo() untuk melihat batas memori dan merencanakan serangan sesuai dengan nilainya. Administrator server dapat mengatur batas memori dari -1 (Tanpa alokasi memori) hingga ukuran apa pun. Batas memori pertama kali diperkenalkan sebagai pengaturan di php. ini setelah PHP versi 5. 2. 0. Untuk versi PHP sebelum 5. 2. 0, batas memori diterapkan selama waktu kompilasi. Batas memori diimplementasikan sebagai pengaturan per-skrip

Jika penyerang mengetahui ukuran maksimum skrip PHP yang dialokasikan oleh server, ia akan dapat mengeksekusi skrip berbahaya dengan ukuran maksimum dari klien yang berbeda. Langkah jahat oleh penyerang ini dapat membuat server hang untuk melakukan serangan denial of service. Penyerang juga dapat melakukan serangan lain setelah serangan ini untuk mematikan server sepenuhnya

Contoh Kode berikut adalah contoh dari memory_limit PHP. -

php. ini

        memory_limit = 512M

    

htaccess

        php_value memory_limit 512M

    
_

Dampak

Menggunakan kerentanan ini, penyerang dapat melakukan. -

  • Penolakan serangan layanan
  • Pemutusan program secara ilegal untuk membatalkan validitas data

Mitigasi / Pencegahan

Beagle merekomendasikan perbaikan berikut. -

Pastikan phpinfo() dinonaktifkan di server. Ubah batas memori ke nilai yang Anda inginkan. php. ini

Jika Anda memiliki skrip yang Anda tahu membutuhkan memori dalam jumlah besar, itu sangat aman, dan diperlukan, untuk menyetel batasnya tinggi. Masalah dapat terjadi jika batas disetel ke tinggi untuk sistem sehubungan dengan jumlah memori yang tersedia dan aplikasi lain yang sedang berjalan

Juga perlu diingat bahwa skrip yang salah yang mungkin berakhir dalam pemrosesan loop tak terbatas beberapa data sering kali berhenti cukup cepat jika batas memori 64 MB atau sesuatu seperti itu. Memiliki batas memori sebesar 4 GB dalam skenario ini akan membuat Anda menjalankan sistem dengan kemiringan penuh dalam loop tak terbatas untuk waktu yang lebih lama dan dapat menyebabkan seluruh sistem Anda menjadi tidak responsif

Tapi saya punya aplikasi pengolah data besar dengan batas memori sekitar 2-4 GB tanpa masalah apa pun pada sistem dengan memori 4-8 GB. Perhatikan bahwa, seperti yang dinyatakan oleh pengguna lain, aplikasi ini adalah SATU contoh. Jika Anda memiliki aplikasi yang menjalankan beberapa contoh skrip Anda (seperti kebanyakan aplikasi web), Anda akan mengalami masalah besar dengan menggunakan banyak memori di setiap contoh. Anda akan kehabisan memori dan selanjutnya klien tidak akan dapat menggunakan aplikasi Anda sampai memori telah dibebaskan

Tapi jangan hanya meningkatkan batas memori untuk menyembunyikan masalah. Periksa mengapa aplikasi Anda membutuhkan banyak memori dan lihat apakah Anda dapat memperbaikinya terlebih dahulu

Mengapa batas memori PHP penting untuk perjalanan pengembangan situs web Anda? . PHP memberikan banyak fitur canggih untuk membuat halaman web dinamis dan mengintegrasikan beberapa fitur yang tidak bisa Anda dapatkan hanya dengan menggunakan javascript, HTML, dan CSS.  

Setiap kali Anda menyiapkan proyek PHP baru, sebagian memori dialokasikan secara otomatis. Memori ini sebagian besar cocok untuk aplikasi umum. Tetapi ada beberapa kasus, misalnya ketika Anda memuat beberapa gambar yang berat ketika situs web Anda menggunakan grafik tinggi maka Anda mendapatkan beberapa kesalahan seperti -

"Kesalahan fatal. Ukuran memori yang diizinkan sebesar xxxxxx byte habis” dan

"nama file. jpg melebihi ukuran unggahan maksimum untuk situs ini. ”

Cara terbaik untuk mengatasi kesalahan ini adalah menghubungi penyedia hosting dan menambah batas memori aplikasi. Namun ada cara untuk menambah batas memori seluruh website atau script tertentu tanpa bantuan ahli seperti menggunakan php. berkas ini,. file htaccess, dll. Di blog ini, kami akan membahas berbagai strategi untuk meningkatkan batas memori dan manfaat meningkatkan batas memori aplikasi PHP Anda

Panduan untuk blog ini

Berapa batas memori PHP?

Batas memori PHP adalah per memori skrip yang dialokasikan untuk skrip PHP. Ini sama dengan batas penyimpanan yang dapat ditempati tugas tertentu. Batas memori dalam skrip PHP ini berguna dalam beberapa kasus. Misalnya, ada beberapa kasus ketika beberapa kode yang ditulis dengan buruk mencoba menghabiskan semua memori di tumpukan

Sebagian besar situs web WordPress memiliki batas memori 32M, tetapi Anda mungkin memerlukan lebih banyak memori dalam banyak kasus. Misalnya, jika Anda melakukan operasi berat seperti panggilan berulang ke database dan pemrosesan gambar yang berat, Anda perlu menambah batas memori skrip Anda

Strategi untuk Dipertimbangkan

Pada bagian blog ini, kami akan membagikan berbagai cara untuk meningkatkan batas memori skrip/aplikasi PHP Anda. Meskipun ini bukan satu-satunya cara untuk meningkatkan batas memori skrip PHP Anda, ini adalah langkah ideal yang digunakan sebagian besar pengembang untuk masalah batas memori.  

Selain itu, mengubah batas memori suatu aplikasi terkadang dapat menimbulkan masalah, jadi Anda harus selalu mencadangkan data sistem Anda

Sebelum mencoba menambah memori, Anda harus selalu berbicara dengan penyedia server situs web Anda. Mereka dapat membantu Anda meningkatkan batas memori menggunakan praktik terbaik mereka

Strategi 1. Mengedit PHP. ini File

php. File ini dijalankan setiap kali aplikasi PHP berjalan, dan digunakan untuk mengontrol berbagai pengaturan skrip PHP seperti ukuran unggahan maksimum, batas memori, batas waktu habis, dll.

Untuk menambah batas memori, Anda dapat mengubah variabel berikut. Namun berhati-hatilah, variabel-variabel ini peka terhadap huruf besar-kecil, dan Anda perlu me-restart server setelah melakukan perubahan agar dapat tercermin

memory_limit = 256M

upload_max_filesize = 12M

post_max_size = 13M

file_uploads = On

max_execution_time = 180

Waktu eksekusi maksimum mengacu pada batas waktu skrip PHP, dan itu berarti waktu maksimum layar dapat dijalankan

Strategi 2. Edit File HTAccess

Itu. htaccess adalah file rahasia maka namanya dimulai dengan titik. Jika Anda menggunakan hosting bersama atau, karena alasan tertentu, Anda tidak dapat mengakses php. ini, Anda perlu mengedit. htaccess file untuk meningkatkan batas memori

Ada berbagai kasus penggunaan ini. file htaccess. Anda perlu menambahkan baris berikut ke file ini untuk menambah batas memori

php_value memory_limit 256M

php_value upload_max_filesize 12M

php_value post_max_size 13M

Strategi 3. Edit konfigurasi wp Anda. File php (Jika Bekerja di WordPress)

Wp-config. php adalah salah satu file paling penting di situs WordPress. Ini adalah file konfigurasi situs WordPress

Untuk batas memori, Anda dapat menemukan variabel bernama WP_MEMORY_LIMIT di config. Umumnya, nilai ini adalah 32M. Tetapi Anda dapat menambah batas dengan mengubah variabel ini. Misalnya, Anda dapat melakukan sesuatu seperti ini

define('WP_MEMORY_LIMIT', '64M');
_

Anda dapat menambah memori ke batas berapa pun yang Anda inginkan dan cukup simpan dan tutup file konfigurasi untuk meluncurkan perubahan

Strategi 4. Tingkatkan melalui CPanel

cPanel berisi sebagian besar informasi yang diperlukan untuk menjalankan situs web. Jika Anda tidak dapat menambah batas memori menggunakan salah satu metode di atas, Anda perlu meningkatkannya melalui dasbor admin cPanel. Jadi jika Anda memiliki akses ke cPanel, maka untuk mengubah batas memori, ikuti langkah-langkah yang diberikan

  • Masuk ke dasbor admin cPanel Anda. Kemudian pilih versi PHP situs web Anda
  • Sekarang buka opsi untuk versi PHP ini dan temukan kolom batas memori di sana
  • Di sana Anda dapat dengan mudah mengubah batas memori skrip PHP Anda, dan perubahan Anda akan disimpan secara otomatis

Strategi 5. Tingkatkan melalui Fungsi ini_set()

Fungsi ini_set() digunakan untuk mengatur nilai atribut tertentu dalam konteks skrip saja. Ini dianggap paling aman dari semua cara di atas karena hanya menetapkan nilai skrip secara khusus dan membatasi skrip yang ditulis dengan buruk agar tidak menghabiskan semua memori di server

Untuk menggunakan fungsi ini untuk menambah batas memori, Anda cukup melakukannya

ini_set('memory_limit', '512MB');

Fungsi di atas akan menetapkan batas memori sebesar 512 MB. Juga, fungsi ini_set() hanya digunakan untuk mengatur nilai variabel sementara; . file ini

Takeaway kunci

Ada banyak kesalahan umum seperti batas memori ini. Di blog ini, kami telah membahas berbagai strategi untuk meningkatkan batas memori dalam skrip Anda. Poin yang perlu diperhatikan di sini adalah bahwa Anda harus selalu menaikkan batas memori skrip PHP Anda hanya sebagai upaya terakhir karena ini adalah tugas penting dan dapat memengaruhi situs Anda dalam banyak cara.

Omong-omong, setelah membuat situs web Anda langsung ke pelanggan yang sebenarnya, Anda pasti ingin tahu apa yang dilakukan pengguna Anda di situs web Anda dan kesulitan yang mereka hadapi. Ini akan membantu dalam meningkatkan keterlibatan dan retensi pelanggan juga. Scout APM adalah solusi modern terbaik untuk pemantauan aplikasi PHP Anda. Muncul dengan dukungan untuk banyak bahasa seperti PHP, Ruby, Python, dll. Anda akan mendapatkan layanan pelanggan 24x7, dan harga sangat rendah dibandingkan dengan pesaing pasar

Kami juga menawarkan uji coba gratis selama 14 hari tanpa kartu kredit. Jadi, jika Anda ingin meningkatkan skala bisnis Anda ke level berikutnya, mulailah uji coba gratis Anda sekarang

Apa yang dimaksud dengan batas memori di situs web?

Situs web Anda akan memiliki batas maksimum 1024 MB (1 GB) saat diakses melalui server web melalui http atau https, dan saat Anda .

Apa batas memori WP yang baik?

Anda harus menyetel batas memori PHP Anda serendah mungkin sambil tetap membiarkan situs Anda berfungsi normal. 128 MB adalah dasar yang baik. Itu adalah jumlah memori yang layak yang akan menangani sebagian besar plugin intensif. Jika Anda tahu Anda akan membutuhkan daya ekstra, 256 MB akan mencakup bahkan plugin terberat sekalipun.

Berapa batas memori di server?

Apa nilai default Memory_limit di PHP INI?

Tampilkan aktivitas di postingan ini. Di PHP5. 0. 4, jika Anda tidak mengonfigurasi -enable-memory-limit, direktif memory_limit diabaikan. (Ini diatur ke 8M di php.ini yang disarankan