Hoe PHP op te lossen Fatale fout: toegestane geheugengrootte van 8388608 bytes uitgeput


ini_set ("memory_limit", "16M");

Hierdoor wordt uw geheugenlimiet eerder ingesteld op 16 MBdan 8 MB. U kunt, en moet, met dit nummer spelen, zodat het zo laag mogelijk is zonder die foutmelding te herhalen. Dit verandert alleen de geheugenlimiet voor dat specifieke PHP-bestand.
Als alternatief kunt u uw php.ini-bestand wijzigen om de geheugenlimiet te verhogen. Dit heeft gevolgen voor alle scripts op uw server. Open gewoon php.ini en zoek de regel die "memory_limit" leest en verander het:
memory_limit = 16 miljoen

Ik heb het opgemerkt in mijn eigen PHP.ini-bestand dat mijn standaard veel hoger is op 128M. Dus als ik ooit deze foutmelding zou krijgen, zou er staan: "Fatale fout: toegestane geheugengrootte van 134217728 bytes uitgeput ..." en het zou duidelijk een veel groter probleem zijn. Maar het heeft dezelfde oplossing als "Fatale fout: toegestane geheugengrootte van 8388608 bytes uitgeput ..." of "Fatale fout: toegestane geheugengrootte van 16777216 bytes uitgeput ..." of wat dan ook. Blijkbaar was de standaardinstelling van memory_limit verhoogd van 8M naar 16M in PHP 5.2.0 en is nu 128M voor PHP 5.3.0, wat zou verklaren waarom je deze foutmelding helemaal niet krijgt.
U kunt de geheugenlimiet ook uitschakelen door memory_limit in PHP.ini in te stellen op –1.
memory_limit = -1
Dit is echter om voor de hand liggende redenen meestal geen goed idee.
Opmerking: u kunt ook de regel memory_limit gebruiken op uw .htaccess-pagina.
Onthoud nu dat dit slechts een tijdelijke oplossing is. Echt, je PHP-script zou dat moeten doen niet groter zijn dan 8 MB, tenzij u bestanden uploadt ofiets anders doen dat duidelijk veel geheugengebruik in beslag neemt. Wat je echt zou moeten doen, is proberen erachter te komen waarom je script zoveel geheugen gebruikt en proberen het te repareren. Een manier om erachter te komen hoeveel geheugen uw PHP-script gebruikt, is door de functie memory_get_usage () PHP te gebruiken. Herhaal het eenvoudig op elk punt in uw script om erachter te komen waar uw geheugengebruik toeneemt:
echo memory_get_usage ();
Als u deze foutmelding krijgt in Drupal of Joomla, is de waarschijnlijke boosdoener een nieuwe module of pakket. In Drupal wordt bijvoorbeeld de admin / modules-pagina geladen elk module in uw Drupal-installatie, die kan krijgenharig als een aangepaste module buggy, corrupt of gehackt is. Probeer modules een voor een uit te schakelen om te bepalen welke partij het feest naar beneden haalt. Sommige hostingproviders negeren ook uw pogingen om de geheugenlimieten voor uw PHP-code te wijzigen, dus u moet mogelijk contact opnemen met uw hostingondersteuning om u te helpen. Ik heb gemerkt dat ik soms het php.ini-bestand moet bewerken en soms de code in het .htaccess-bestand moet zetten. Hoe dan ook, hopelijk is deze informatie hier genoeg om je op weg te helpen!
laat een reactie achter