Home » Uncategorized

PHP Fatal error: Allowed memory size of 33554432 bytes exhausted

23 May 2008

PHP Fatal error: Allowed memory size of 33554432 bytes exhausted

Aceasta este o eroare care pare sa puna la incercare multi coderi php incepatori, asa ca dupa ce am raspuns de mai multe ori la aceasta intrebare pe forumuri m-am gandit sa scriu acest post pentru ca data viitoare sa dau acest link fara sa mai scriu aceasi explicatie din nou, sau poate doamne ajuta o sa caute pe google si o sa gaseasca aceasta pagina.

Mai intai sa intelegem de ce aparea aceasta eroare, daca nu v-ati dat seama din titlu, ea apare fiindca scriptul tau foloseste mai multa memorie decat e alocat in mod normal unui script php. Aceasta se intampla din cateva motive pe care le voi enumera acum :

  • Output-ul scriptului tau ( HTML ) este prea mare ( se intampla destul de rar )
  • scriptul foloseste memoria peste limita datorita varaibilelor folosite sau cererilor facute ( variabile POST FILES etc. – cea mai frecventa cauza )
  • Exista un bug in scriptul tau care face ca scriptul sa consume asa de multa memorie

Acum nu trebuie sa te sperii, nu este o eroare asa de grava si poate fi remediata chiar foarte usor deobicei. Pentru a rezolva problema poti incerca ormatoarele :

  • sa optimizezi scriptul ca sa nu mai manance atata memorie ( destul de logic nu ? )
  • sa cauti eventualele bug-uri care ar putea cauza folosirea excesiva a memoriei
  • sa minimizezi output-ul scriptului
  • sa maresti varaibila de configurare php memory_limit fie in php.ini ( daca ai acces ) sau chiar in scriptul php folosind functia ini_set() ( ex: ini_set(‘memory_limit’,’32MB’); )

Limita default de 8MB a fost implementata in php pentru a opri scripturile de a rula atunci cand incep sa consume o cantitate de memorie prea mare din memoria totala a serverului, lucru care daca ar fi lasat sa continue ar putea cauza caderea serverului. Metoda cea mai buna de a corecta aceasta eroare ar fi de a optimiza scriptul php si a cauta eventulele bug-uri, decat de a mari limita de memorie metoda intradevar mai usoara si adoptata de foarte multi coderi ( desigur sunt si cazuri cand aceasta este singura solutie ) .

Sper ca acest articol v-a fost de ajutor si astept comentariile voastre.

Ti-a placut articolul?

Vrei sa afli de articolele noi?

Aboneaza-te aici:

Te-ar mai putea interesa si:

Nu sunt articole asemanatoare.

Uncategorized ,
  • http://tristan.1r.ro/ Gabi

    Unde gasesc fisierul php.ini ? Cum am acces la el ? Nu pot uploada fisiere mai mari de 64 de MB.

  • http://www.gabrielsolomon.ro/ gabi solomon

    @Gabi
    php.ini este in configurarea serverului, si daca ai un cont shared de hosting nu o sa ai acces la el … dar poti cu functia ini_set

  • http://www.facebook.com/profile.php?id=100000138790160 Marales Razvan

    eu folosesc wordpress si imi apare eroare cand instalez un plugin mai complex, tot asa am un cont share, sti cumva unde dau de ini_set() ? sau ar fi mai bine sa vorbesc direct cu tipul de la host?

    • http://www.gabrielsolomon.ro/ gabi solomon

      ini_set este o functie PHP care trebuie inserata in codul sursa