Allowed memory size of X bytes exhausted
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 13965430 octets)
PHPInfo montre que j'ai un memory_limit de 128M, donc je suis confus quant à pourquoi le message d'erreur indique que je n'ai que 64M. Est-il possible pour le phpinfo de rapport d'erreur? Ou pour PHP pour utiliser deux php.inis?
L'erreur a été causée par un ini_set appel à l'un des principaux fichiers php d'un co-travailleur de la mine ajouté à mon insu.
- Les besoins de façon plus contexte. Où en êtes-vous cela?
- C'est un script sur un site, je suis d'hébergement. C'est le traitement d'un tas de données de localisation et de générer un fichier KML. Cependant, pour un jeu de données particulier, il me fait cette erreur.
- Vous êtes sur un serveur mutualisé? Pourrait être les propriétaires ont désactivé memory_limit changements.
- Je suis sur un serveur partagé, mais j'ai parlé avec le sysadmin et il n'a pas été très utile. Il m'a seulement dit d'augmenter memory_limit de php.ini. J'ai aussi essayé la fonction ini_set avant que le script s'exécute, en vain.
- Double Possible de Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 octets) en php
- Ce qui est vraiment qui me frappe, c'est le permis octets nombre est plus que l'allocation d'octets.
Vous devez vous connecter pour publier un commentaire.
PHP config peut être réglé en plusieurs endroits:
php.ini
(généralement dans /etc quelque part)php_value
)php.ini
(utilisez la commandephp -i | grep memory_limit
pour vérifier la CLI conf)php_value
)ini_set()
)Dans le PHPinfo de sortie, le "Maître" de la valeur est la compilés valeur par défaut, et le "Local" valeur est ce qui est actuellement en vigueur. Il peut être soit inchangé par rapport à la valeur par défaut, ou remplacées dans les emplacements ci-dessus.
Également noter que PHP a généralement différents .les fichiers ini pour la ligne de commande et le serveur de base de fonctionnement. La vérification de
phpinfo()
à partir de la ligne de commande du rapport des valeurs différentes que si vous souhaitez l'exécuter dans un site web basé sur le script.ou
ou
J'ai eu même problème. J'ai trouvé la réponse:
Remarque: Il faut illimité utilisation de la mémoire du serveur.
Mise à jour:
Utiliser avec prudence, car cela peut ralentir votre système, si le script PHP commence à utiliser une quantité excessive de mémoire, causant beaucoup de l'espace de swap d'utilisation. Vous pouvez l'utiliser si vous connaissez le programme ne prendra pas beaucoup de mémoire et aussi vous ne savez pas combien de définir dès maintenant. Mais vous finirez par trouver la quantité de mémoire dont vous avez besoin pour que programme de.
Vous devez toujours de la limite de mémoire comme une certaine valeur comme répondu par @
şarkı dinle
.Donner illimité de mémoire est une mauvaise pratique, plutôt que nous devrions donner une certaine limite maximum que l'on peut porter et enfin d'optimiser notre code ou d'ajouter certains Béliers.
memory_limit
existe pour une raison, de sorte que votre serveur habitude de crash d'ours ou de tout dommage physique causé par la surcharge. En lui donnant une mémoire illimitée est une mauvaise pratique, plutôt que nous devrions donner une certaine limite maximum que l'on peut porter et d'optimiser notre code ou ajouter un peu de Béliers.La mémoire doit être configuré en plusieurs endroits.
Définir
memory_limit
à 512M:Redémarrer le service:
ou
Enfin, il faut résoudre le problème de la
memory_limit
Si vous êtes sûr de le redémarrer Apache après la configuration de php.ini, alors vous pourriez être à la recherche à la mauvaise php.fichier ini
phpinfo()
dans un site web basé sur le script à la place.Si en augmentant la limite de la mémoire que vous avez réussi à se débarrasser de l'erreur et que votre code fonctionne maintenant, vous aurez besoin de prendre des mesures pour diminuer l'utilisation de la mémoire. Voici quelques choses que vous pourriez faire pour le diminuer:
Si vous êtes en train de lire des fichiers, de les lire ligne par ligne à la place de la lecture dans le fichier dans la mémoire. Regardez fgets et SplFileObject::fgets.
La mise à niveau vers une nouvelle version de PHP si vous êtes à l'aide de PHP 5.3. PHP 5.4 et 5.5 utiliser beaucoup moins de mémoire.
Éviter le chargement de grands ensembles de données dans un tableau. Au lieu de cela, aller pour le traitement des sous-ensembles plus petits du plus grand ensemble de données et, si nécessaire, conserver vos données dans une base de données pour soulager l'utilisation de la mémoire.
Essayer la dernière version ou une version mineure d'une bibliothèque tierce (1.9.3 vs votre 1.8.2, par exemple) et d'utiliser celle qui est la plus stable. Parfois, de nouvelles versions de bibliothèques sont écrits de manière plus efficace.
Si vous avez une rare ou instable extension PHP, essayez de le mettre à niveau. Il pourrait avoir une fuite de mémoire.
Si vous travaillez avec des fichiers de grande taille et que vous simplement ne pouvez pas le lire ligne par ligne, essayez de diviser le fichier en plusieurs fichiers plus petits et de les traiter individuellement.
Désactiver les extensions PHP, que vous n'avez pas besoin.
Dans la zone à problème, désactiver les variables qui contiennent de grandes quantités de données et ne sont pas requis plus tard dans le code.
À PARTIR de: https://www.airpair.com/php/fatal-error-allowed-memory-size
Ce problème est arrivé à cause de php.ini limite définie a été exided mais avoir beaucoup de solution pour cela, mais simple est de trouver vos serveurs locaux dossier et que trouver le dossier de php et dans ce dossier ont php.fichier ini qui ont toute déclaration de ce type de configurations. Vous avez juste besoin de trouver et de modifier cette valeur. Mais dans cette situation ont un gros problème une fois que vous changer dans votre fichier localhost, mais ce que sur le serveur lorsque vous voulez mettre votre site sur le serveur de nouveau produire le même problème et vous suivez la même chose pour le serveur.
Mais vous savez aussi sur .fichier htaccess c'est l'un de la meilleure et la seule place pour faire beaucoup de choses sans changer les fichiers de base.
Comme vous changez www routage, de la suppression .php ou d'autres extensions à partir de l'url ou en ajouter un.
Même comme ça vous aussi difine les valeurs par défaut de php.ini ici, comme ce -
Vous devez d'abord ouvrir le .fichier htaccess de la racine de votre répertoire ou si vous n'avez pas ce fichier, de façon à créer un sur le répertoire racine de votre site et collez ce code sur elle -
après les changements, si vous voulez vérifier les changements que vous venez d'exécuter le code php
il va vous montrer le php cofigrations tous les détails. Vous retrouverez donc vos modifications.
Note: pour la définition illimité juste ajouter -1 comme
php_value memory_limit -1
Il n'est pas bon et la plupart du temps de ralentir votre serveur. Mais si vous aimez être limite moins de puis ce une option est également apte pour vous.
Si après actualisez votre page de changements reflètent pas vous devez redémarrer votre serveur local une fois pour les changements.
Bonne Chance. J'espère que ça aidera.
Vous souhaitez télécharger le .fichier htaccess cliquez sur ce.