Que dois-je faire s'il y a une limite de mémoire en php ?

墨辰丷
Libérer: 2023-03-25 20:38:01
original
8359 Les gens l'ont consulté

Cet article présente principalement que faire si la mémoire est limitée en php ? Les amis intéressés peuvent s'y référer, j'espère que cela sera utile à tout le monde.

Hier, alors que je déboguais le programme côté serveur, le site Web est soudainement apparu Erreur fatale : taille de mémoire autorisée..., J'étais confus à ce moment-là, mais cela a vite été est revenu à la normale, non seulement ma curiosité a été éveillée, et Baidu a enquêté sur la cause. Il s'est avéré que cela était dû à un seul script utilisant trop de mémoire. Ce qui suit est un article reproduit.

Lors de l'exécution d'un programme PHP, vous rencontrez généralement l'erreur "Erreur fatale : taille de mémoire autorisée de xxxxxx octets épuisée", ce qui signifie que le script PHP utilise trop de mémoire. , et dépasse la mémoire maximale autorisée définie par le système. Pour résoudre ce problème, vous devez d'abord vérifier si votre programme a alloué trop de mémoire. S'il n'y a aucun problème avec le programme, vous pouvez augmenter la limite de mémoire de PHP (memory_limit) via les méthodes suivantes.

Vérifiez la valeur limite de mémoire de php

Afin de vérifier cette valeur, vous devez créer un fichier php vide, tel que view-php-info.php. Collez ensuite le code suivant à l’intérieur.

<?php 
phpinfo();
 ?>
Copier après la connexion

Mettez ce script sur votre hôte PHP et appelez-le dans le navigateur. À ce stade, vous pouvez voir les informations sur la configuration de votre environnement PHP, dont une partie concerne "memory_limit", comme indiqué ci-dessous :

Que dois-je faire sil y a une limite de mémoire en php ?

Remarque : vous pouvez utiliser cette méthode. vérifiez les autres paramètres de php, pas seulement memory_limit

À combien de valeur memory_limit doit-il être défini ?

Cela dépend entièrement des exigences de votre candidature. Par exemple, WordPress nécessite 32 Mo pour exécuter le code principal. Drupal 6 exige que cette valeur soit d'au moins 16 Mo et recommande de la définir sur 32 Mo. Si vous installez de nombreux plug-ins, en particulier ceux qui nécessitent un traitement d'image, vous aurez peut-être besoin de 128 Mo de mémoire ou plus.

Comment définir la limite de mémoire

Méthode 1 : php.ini

La méthode la plus simple ou la plus courante consiste à modifier php.ini

  1. Trouvez d'abord le fichier php.ini qui est efficace pour votre site Web

    Comme il existe de nombreux endroits pour définir les paramètres php, recherchez le fichier de configuration correct et continuez Le changement est la première étape. Si vous avez créé un fichier php en utilisant la méthode ci-dessus pour afficher ses paramètres de configuration, vous pouvez trouver l'élément « Fichier de configuration chargé ». Voici un exemple :

    Que dois-je faire sil y a une limite de mémoire en php ?

    Pour Linux. utilisateurs, vous pouvez trouver le fichier de configuration correspondant en exécutant "php -i | grep Loaded Configuration File". Pour les utilisateurs Windows, vous pouvez essayer de modifier php.ini dans votre répertoire d'installation php.

  2. Modifier le php.ini

    Dans php.ini, recherchez l'élément "memory_limit". Sinon, vous pouvez La queue ajoute ce paramètre. par lui-même. Voici quelques exemples de paramètres

    memory_limit = 128M ; 可以将128M改为任何你想设置的值
    Copier après la connexion

    Enregistrez le fichier

  3. Redémarrez le serveur Web

    Si le serveur Web utilise Apache, puis exécutez :

    httpd restart
    Copier après la connexion

Dans certains cas, vous n'êtes peut-être pas autorisé à modifier php.ini en privé. Par exemple, si vous avez acheté un service d'hébergement virtuel, mais que votre fournisseur de services ne vous permet pas de modifier ce fichier. Ensuite, vous souhaiterez peut-être envisager d’autres méthodes pour augmenter la valeur de memory_limit.

Méthode 2 : .htaccess

Remarque : Cette méthode ne prend effet que lorsque php est exécuté en tant que module Apache.

Recherchez le fichier « .htaccess » dans le répertoire racine de votre site Web. Sinon, vous pouvez en créer un vous-même. Ensuite, mettez-y la configuration suivante

php_value memory_limit 128M ; 可以将128M改为任何你想设置的值
Copier après la connexion

Méthode 3 : Modifiez les paramètres de mémoire de php pendant l'exécution

Ajoutez la ligne de commande suivante à votre code php.

ini_set(&#39;memory_limit&#39;, &#39;128M&#39;);
Copier après la connexion

Échec de la modification de memory_limit

Si vous utilisez un hôte virtuel, il se peut que la modification de la valeur de memory_limit échoue. Vous devez contacter votre fournisseur de services pour savoir comment gérer cela. Généralement, ils limitent la valeur maximale qui peut être définie ou ne vous permettent pas du tout de la modifier. Si leur environnement ne peut vraiment pas répondre à vos besoins, vous pouvez alors envisager de passer à un autre fournisseur d'hébergement.

Recommandations associées :

Explication détaillée de la libération de mémoire PHP et du garbage collection


Explication détaillée de fuite de mémoire PHP

Explication détaillée de la gestion de la mémoire PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal