Je construis un site pour un photographe qui télécharge des images qui sont normalement grandes pour les appareils photo numériques d'aujourd'hui. Les images sont assez gourmandes en mémoire, en particulier les opérations d'image comme la création de miniatures.
Je voulais donc augmenter la limite de mémoire dans l'administrateur au-dessus de 256 Mo - comment cela peut-il être fait? J'ai autorisé CGI et PHP à utiliser jusqu'à 1 gigaoctet, mais wordpress réduit toujours la mémoire à 256 Mo. Une idée de comment résoudre ce problème côté client qui doit pouvoir se mettre à jour automatiquement?
MISE À JOUR: À partir de Wordpress 3.2 en cours, la limite de mémoire maximale dans Wordpress sera à nouveau configurable .
customization
admin
memory
hakre
la source
la source
Réponses:
Théoriquement, éditez votre config.php et ajoutez cette ligne avant l' inclusion de wp-settings.php.
devrait augmenter votre limite de mémoire pour WordPress à 256 Mo ou quelle que soit la valeur que vous définissez. Et cela fonctionnera sur tout le site. Cependant, comme l' a souligné sorich87 , peu de fonctions modifieront ce paramètre avec une limite de 256 Mo codée en dur.
Pirater ou ne pas pirater
Une petite inquiétude à ce sujet
WP_MEMORY_LIMIT
est l'un des paramètres WP les plus étranges que j'ai rencontrés. si vous cochez,/wp-includes/default-constants.php
vous trouverez ce paramètre:Je ne me rends jamais compte que WP définira son utilisation de la mémoire par défaut si bas, jusqu'à ce que je trouve cela dans le codex WP:
Cette explication était soulageante. Cependant, l'utilisation de la
@ini_set('memory_limit', '256M');
fonction d'exécution à chaque fois codée en dur qui nécessite plus de mémoire n'est jamais mentionnée . En fait, je ne trouve aucune explication sur ce comportement vague du codex WP. Étant donné que la plupart des fonctions non liées à l'utilisateur ne sont pas documentées ou ne sont pas clairement expliquées dans le codex.Bien que ce paramètre fonctionne bien dans la plupart des cas, il rendra ces fonctions inutiles sur le serveur avec un paramètre de mémoire maximale inférieur ou sur votre cas, une utilisation de la mémoire plus élevée.
Jusqu'à ce que les gars WP corrigent cela, je pense que votre seule solution est de modifier le noyau. Vous pouvez trouver cet article écrit par hakre intéressant à lire. Il a également soumis une recommandation de patch dans Trac. Le lien précédent vers le fichier de correctif peut vous aider à trouver la liste des fonctions qui utilisent ce paramètre.
Éditer:
c'est la réponse la plus stupide que j'ai jamais donnée parce que je donne un lien vers votre propre message (réalisez juste que le nom de l'OP était hakre après 2 jours): D
modifier 2:
comme mentionné dans le commentaire, cela a été corrigé par la version 3.2
la source
Il y a
@ini_set('memory_limit', '256M');
avant que les images ne soient chargées en mémoire par les fonctions GD.imagecreatefromstring()
(ligne 253, wp-includes / media.php) est utilisé parwp_load_image()
qui est utilisé parimage_resize
(la fonction où le traitement des images est effectué pour la création des miniatures). La limite de mémoire est à la ligne 252, donc, pour autant que je puisse voir, il n'y a aucun moyen de la modifier sans tuer un chaton *> :).Il existe également des fonctions GD dans
load_image_to_edit()
(ligne 200, wp-admin / includes / image-edit.php). Celui-ci est utilisé par l'éditeur d'image (je ne l'ai jamais utilisé, car je connais WordPress, je ne savais même pas où le trouver :)). Si votre client l'utilise, vous pouvez également y définir la limite de mémoire. Il y a le filtreload_image_to_edit_path
.J'espère que ma réponse sera utile.
* noyau de piratage
la source
WP_MEMORY_LIMIT
constante et même unadmin_memory_limit
filtre, mais aucun n'est consulté dans ces quelques cas.Swill - J'ai eu les mêmes problèmes. Merde wordpress avec certaines des "fonctionnalités" Une approche plutôt plus sophistiquée consiste à changer tous les @ini_set pour le régler à partir de WP_MEMORY_LIMIT - problème résolu
De plus, changer les valeurs php au moment de l'exécution n'est pas si intelligent, je ne sais pas pourquoi il est implémenté :(
la source
D'après votre description, je pense que ce code
admin.php
est le problème:Un peu étrange qu'il traite séparément l'utilisation de la mémoire d'administration, mais au moins il est filtrable.
la source
Je voulais juste dire merci à Bangbambang. C'est le premier message que j'ai trouvé qui m'a permis de comprendre pourquoi l'entrée dans wp-config.php
define('WP_MEMORY_LIMIT', '512M');
n'était pas réellement utilisée. J'ai passé des heures à essayer de comprendre cela ...Mon importation a échoué avec le problème épuisé de 256 Mo, quelle que soit la façon dont j'ai défini la limite de mémoire.
Voici les endroits où la limite de mémoire est codée en dur à 256M (dans la version 3.0.5 de toute façon).
la source
WP_MAX_MEMORY_LIMIT
.la source