Miro video converter
18 September 2011
Gestion commerciale et facturation online maTPE
25 September 2011
Show all

WordPress & PHP & 1&1 : Augmenter la mémoire allouée

Ces derniers temps, lorsque j’essayai d’utiliser une image un peu lourde sur WordPress, le message suivant apparaissait :

Fatal error: Out of memory (allocated 32243712) (tried to allocate 600 bytes) in /homepages/36/d301492722/htdocs/wp-includes/media.php on line 253

Après quelques recherches sur le Net, j’ai rapidement compris que PHP limitait ma capacité mémoire par le memory_limit.

J’ai installé le plugin wp-memory-usage qui me signalait que 61% de ma mémoire était utilisée.

Résultat wp-memory-usage visible dans le tableau de bord.

  • PHP Version : 5.2.14 / 32Bit OS
  • Memory limit : 40 MByte
  • Memory usage : 25.44 MByte
  • 64%

Alors voici comment j’ai fait pour augmenter la Mémoire au maxi.

Créer un fichier que vous nommez php.ini dans lequel vous écrivez les 2 lignes suivantes :

upload_max_filesize = 32M
post_max_size = 32M

Attention la taille maximum de mémoire dépend de votre hébergeur. Renseignez vous avant de définir cette valeur. Pour ma part je suis chez 1&1 et 32M est le maximum.

Jusque là c’est assez simple. Maintenant ça devient un peu plus compliqué car il faut copier ce fichier dans tous les répertoires de votre Blog ou site.

Mais comme toujours il y a une astuce.

Créez un fichier php que vous nommerez phpini.php par exemple dans lequel vous écrivez les lignes suivantes :

// set this value to Y if you only want to overwrite old php.ini files
// set this value to N if you want to put a php.ini file in every directory
$overwriteOnly = "N";

if ($overwriteOnly == "Y") echo "Operating in Overwrite Only Mode

";
$path = "/homepages/xx/dxxxxxxxxx/htdocs";
$source = $path . "/php.ini";
if (!file_exists($source)) die('Error - no source php.ini file');
function search($dir) {
global $source;
global $overwriteOnly;
$dh = opendir($dir);
while (($filename = readdir($dh)) !== false) {
if ( $filename !== '.' AND $filename !== '..' AND $filename !== 'cgi-bin' AND is_dir("$dir/$filename") ) {
$path = $dir."/".$filename;
$target = $path . "/php.ini";
if (!file_exists($target) AND $overwriteOnly == "Y") {
echo "$path skipped - no php.ini file
";
} else {
echo "$target
";
if (!copy($source,$target)) echo "Write failed for $target
";
if (file_exists($target)) chmod($target,0600);
}
search($path);
}
}
closedir($dh);
}
search($path);
echo "
Done.";
?>

Il s’agit simplement d’un script qui va copier pour vous le fichier php.ini dans tous les répertoires.

Attention : la ligne $path devra être ajusté selon votre propre emplacement

Les fichiers phpini.php et php.ini devront être placés à la racine de votre blog via FTP ou autre moyen.

Ensuite il suffit d’ouvrir ton navigateur internet et d’écrire l’adresse url de ton fichier phpini.php et de lancer la copie.

Vous pouvez ensuite supprimer votre fichier phpini.php.

Voici le résultat wp-memory-usage après modification :

  • PHP Version : 5.2.14 / 32Bit OS
  • Memory limit : 128 MByte
  • Memory usage : 25.44 MByte
  • 20%

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *