Saya sedang membangun situs untuk fotografer yang mengunggah gambar yang biasanya besar untuk kamera digital saat ini. Gambar cukup intensif memori, terutama operasi gambar seperti membuat thumbnail.
Jadi saya ingin menaikkan batas memori di admin di atas 256MB - bagaimana ini bisa dilakukan? Saya mengizinkan CGI dan PHP untuk menggunakan hingga 1 Gigabyte tetapi wordpress selalu mengurangi memori hingga 256MB. Adakah yang tahu bagaimana cara memperbaikinya di sisi klien yang harus dapat melakukan pembaruan otomatis?
PEMBARUAN: Dari Wordpress 3.2 yang sedang berlangsung batas memori maksimum di Wordpress akan dapat dikonfigurasi lagi .
customization
admin
memory
hakre
sumber
sumber
Jawaban:
Secara teoritis, edit config.php Anda dan tambahkan baris ini sebelum dimasukkannya wp-settings.php.
seharusnya menaikkan batas memori Anda untuk WordPress menjadi 256MB atau nilai apa pun yang Anda tetapkan. Dan ini akan bekerja di seluruh tempat. Namun, seperti yang ditunjukkan sorich87 , ada beberapa fungsi yang akan mengubah pengaturan ini dengan batas 256 MB berkode keras.
Untuk Meretas atau Tidak Meretas
Sedikit kekhawatiran tentang ini,
WP_MEMORY_LIMIT
adalah salah satu pengaturan WP paling aneh yang pernah saya temui. jika Anda memeriksa/wp-includes/default-constants.php
Anda akan menemukan pengaturan ini:Saya tidak pernah menyadari bahwa WP akan menetapkan penggunaan memori standarnya sangat rendah, sampai saya menemukan ini dalam WP codex:
Penjelasan itu melegakan. Namun, penggunaan hard coded
@ini_set('memory_limit', '256M');
setiap kali menjalankan fungsi WP yang membutuhkan lebih banyak memori tidak pernah disebutkan . Bahkan, saya tidak menemukan penjelasan tentang perilaku yang tidak jelas ini dari WP codex. Karena sebagian besar fungsi yang tidak berhubungan dengan pengguna tidak didokumentasikan atau tidak dijelaskan dengan jelas dalam codex.Meskipun pengaturan ini berfungsi dengan baik pada kebanyakan kasus, ini akan membuat fungsi-fungsi itu tidak berguna di server dengan pengaturan memori maks yang lebih rendah atau pada kasus Anda, penggunaan memori yang lebih tinggi.
Sampai WP guys memperbaiki ini, saya pikir satu-satunya solusi Anda adalah memodifikasi inti. Anda mungkin menemukan posting ini ditulis oleh hakre menarik untuk dibaca. Dia juga mengirimkan rekomendasi tambalan di Trac. Tautan sebelumnya ke file tambalan dapat membantu Anda menemukan daftar fungsi yang menggunakan pengaturan ini.
edit:
ini adalah jawaban paling bodoh yang pernah saya berikan karena saya memberikan tautan ke posting Anda sendiri (baru sadar bahwa nama OP adalah hakre setelah 2 hari): D
edit 2:
seperti yang disebutkan pada komentar, ini telah diperbaiki oleh rilis 3.2
sumber
Ada
@ini_set('memory_limit', '256M');
sebelum gambar dimuat dalam memori oleh fungsi GD.imagecreatefromstring()
(baris 253, wp-include / media.php) digunakan olehwp_load_image()
yang digunakan olehimage_resize
(fungsi pemrosesan gambar dilakukan untuk pembuatan thumbnail). Batas memori ada pada baris 252, jadi, sejauh yang saya bisa lihat, tidak ada cara untuk memodifikasinya tanpa membunuh anak kucing *> :).Ada juga fungsi GD di
load_image_to_edit()
(baris 200, wp-admin / include / image-edit.php). Yang ini digunakan oleh editor gambar (saya pernah menggunakannya, karena saya tahu WordPress, bahkan tidak tahu harus menemukannya :)). Jika klien Anda menggunakannya, Anda mungkin ingin mengatur batas memori di sana juga. Ada filternyaload_image_to_edit_path
.Semoga jawaban saya bermanfaat.
* inti peretasan
sumber
WP_MEMORY_LIMIT
konstan dan bahkanadmin_memory_limit
, tetapi tidak ada yang berkonsultasi dalam beberapa kasus ini.Swill - Saya punya masalah yang sama. Sialan wordpress dengan beberapa "fitur" Pendekatan yang agak lebih canggih adalah mengubah semua @ini_set untuk mengaturnya dari WP_MEMORY_LIMIT - masalah terpecahkan
Juga, mengubah nilai php saat runtime tidak sepintar itu, tidak yakin mengapa itu diterapkan :(
sumber
Menurut uraian Anda, saya pikir kode ini
admin.php
adalah masalahnya:Agak aneh bahwa itu memperlakukan penggunaan memori admin secara terpisah, tetapi setidaknya itu dapat disaring.
sumber
Saya hanya ingin mengucapkan terima kasih kepada bangbambang. Ini adalah posting pertama yang saya temukan yang dapat memberi saya wawasan mengapa entri ke wp-config.php
define('WP_MEMORY_LIMIT', '512M');
sebenarnya tidak digunakan. Saya menghabiskan berjam-jam mencoba untuk mencari tahu ini ...Impor saya gagal dengan masalah kelelahan 256M terlepas dari bagaimana saya mengatur batas memori.
Berikut adalah tempat-tempat di mana batas memori hardcoded ke 256M (dalam versi 3.0.5).
sumber
WP_MAX_MEMORY_LIMIT
.sumber