ini_set('memory_limit', ) tidak berfungsi dan mengembalikan false; tidak tahu kenapa

ini_set('memory_limit', '128M'); // Returns false; memory_limit unchanged

Saya tidak dapat menemukan daftar hal-hal yang dapat menyebabkan hal ini. Sejauh ini saya memeriksa:

  • Mode aman: dinonaktifkan
  • menonaktifkan_fungsi: Kosong
  • php_admin_value: Tidak ada yang dapat saya temukan (apakah ada cara untuk mengetahui secara pasti?)

Saya kehabisan ide! ini_set berfungsi dengan benar dengan parameter lain (seperti "display_errors")


person Thomas Bonini    schedule 02.05.2011    source sumber
comment
versi PHP mana yang Anda gunakan?   -  person James C    schedule 02.05.2011
comment
Apakah gagal untuk arahan apa pun yang diteruskan ke ini_set() atau hanya memory_limit? Apakah ada nilai untuk memory_limit yang gagal, atau hanya 128M? Bagaimana Anda memverifikasi bahwa nilainya tidak berubah? Saya juga memperhatikan perilaku ini pada beberapa server di sini, jadi saya sangat tertarik untuk melihat apakah kami mengalami masalah yang sama.   -  person    schedule 02.05.2011
comment
apakah Anda menggunakan platform hosting bersama atau apakah ini mesin yang Anda atur/konfigurasi sendiri?   -  person James C    schedule 02.05.2011
comment
@James: Saya menggunakan PHP Versi 5.2.6-1+lenny9.   -  person Thomas Bonini    schedule 02.05.2011
comment
@Phoenix: gagal hanya dengan memory_limit. Saya memverifikasi bahwa nilainya tidak berubah dengan memanggil ini_get.   -  person Thomas Bonini    schedule 02.05.2011
comment
@James pertanyaan 2: Ini adalah server khusus yang disiapkan oleh administrator jaringan kami. Ini adalah server pengembang tempat kami menguji kode kami; di server langsung, ini_set berfungsi dengan benar.   -  person Thomas Bonini    schedule 02.05.2011


Jawaban (2)


Jika bukan masalah versi PHP yang diposting, coba periksa apakah tidak ada apa pun di mesin yang mencegah Anda menaikkan batas ini.

Bagaimana cara memeriksa apakah Suhosin sudah diinstal?

edit (setelah memastikan bahwa Suhosin diinstal):

Detail konfigurasi ada di sini: http://www.hardened-php.net/suhosin/configuration.html Saya menduga akan ada file di /etc/php.d/ yang dapat Anda edit untuk meningkatkan batas batas memori. Variabel konfigurasi yang perlu Anda edit adalah: suhosin.memory_limit

person James C    schedule 02.05.2011
comment
Bingo! Server ini di proteksi dengan Suhosin Patch 0.9.10.. Nah apa itu? Saya akan mencoba mencarinya di Google dan melihat apakah itu masalahnya atau tidak - person Thomas Bonini; 02.05.2011
comment
Mungkin begitu, tapi saya tidak dapat menemukan opsi pengaturan yang mengatakan jangan pernah lebih tinggi dari 64M.. Tahukah Anda di mana ini dapat dikonfigurasi? Atau cara kerjanya seperti ini secara default? Bagaimanapun saya membuka tiket untuk admin jaringan kami semoga dia bisa menyelesaikan masalah ini - person Thomas Bonini; 02.05.2011
comment
oke, admin jaringan kami mengubah opsi sushosin dan sekarang berfungsi. kamu - person Thomas Bonini; 02.05.2011

Manual mengatakan :

Sebelum PHP 5.2.1, untuk menggunakan direktif ini, arahan ini harus diaktifkan pada waktu kompilasi dengan menggunakan --enable-memory-limit di baris konfigurasi

Itu mungkin penyebab masalah Anda.

person JB Nizet    schedule 02.05.2011
comment
Kami menggunakan: PHP Versi 5.2.6-1+lenny9, jadi sayangnya bukan itu masalahnya =( - person Thomas Bonini; 02.05.2011