


Que dois-je faire s'il y a une limite de mémoire en php ?
May 15, 2018 pm 04:23 PMCet 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(); ?>
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 :
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
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 :
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.
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 connexionEnregistrez le fichier
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改为任何你想设置的值
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('memory_limit', '128M');
É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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
