Toon posts:

[PHP] Memory probleem met gdlib

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een script dat een copyright tekst in een plaatje zet. Om dat te bewerkstelligen gebruik ik een thumbnail class met allerhande opties die je hier kan vinden: http://www.php-editors.com/contest/1/88-read.html

Nu draai ik om mijn websites te testen zelf php 5.0.4 onder windows met apache en werkt mijn script prima zonder fouten oid.

Maar zodra ik de website op een redhat linux server draai (PHP Version 4.3.10 / Apache/2.0.51 (Fedora)) krijg ik bij sommige plaatjes altijd de foutmelding:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1280 bytes) in /home/httpd/vhosts/*****/httpdocs/includes/thumbnail.class.php on line 312

Nu heb ik het geheugen inmiddels verhoogd tot 128M maar de foutmelding blijft bij dezelfde plaatjes voorkomen.

De code waarbij het fout gaat luid als volgt:

PHP:
1
$this->img["des"] = ImageCreateTrueColor($X_des,$Y_des);


Het betreft bijvoorbeeld een afbeelding van 1280x960. Iemand een idee waardoor dit probleem zich kan voordoen en wat ik er aan kan doen?

Wat ik dus zo raar vind is dat in de foutmelding staat dat hij omgerekend maar 8MB mag gebruiken. Wat voor waarde is het dan? Want ik heb toch echt in de phpinfo staan dat hij meer mag gebruiken!

[ Voor 10% gewijzigd door Verwijderd op 20-10-2005 14:15 ]


  • semicolon
  • Registratie: Mei 2004
  • Niet online
Simpel te verklaren door te kijken in de FAQ van GD-Lib zelf (dus niet op php). (link naar faq).
Why does gd cause my PHP script to run out of memory?

Most often, the problem is that the memory_limit parameter in php.ini is set to something very conservative, like 8M (eight megabytes). Increase that setting and restart the web server.
Of course, opening truly huge images can cause real memory problems, if several are open at once. 8,000 pixels times 8,000 pixels times four bytes for truecolor equals a walloping 256 megabytes.
Ik denk dat het duidelijk genoeg is, dit is dus de oorzaak.

de oplossingen:
1) verhoog je memory_limit
2) gebruik kleinere afbeeldingen
3) probeer imagemagick anders eens (als het je eigen server is)
4) ... weet ik niet maar misschien heeft iemand anders hier nog een oplossing :)

-- zie / las erover heen? dat je geheugen al verhoogd had:
kijk een phpinfo of daar het geheugen ook verhoogd is, want ik denk dat de instelling niet goed doorgekomen is ofzo dan...

[ Voor 16% gewijzigd door semicolon op 20-10-2005 14:24 . Reden: typo ]

:D/-<


  • Vuurvlieg
  • Registratie: Januari 2000
  • Laatst online: 05-06 15:09
*moet beter lezen*

Misschien een instelling in GD?
Meerdere plaatjes?
Uberhaupt te weinig geheugen in de server?

[ Voor 79% gewijzigd door Vuurvlieg op 20-10-2005 14:21 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Dus je het je limiet verhoogd maar je blijft de melding krijgen dat je script maar 8MB mag gebruiken..

Denk dat je toch je settings nog eens in moet duiken en kijken of je wel het juiste op de juiste plaats hebt veranderd ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-08 12:58

NMe

Quia Ego Sic Dico.

Dit is geen programmeerprobleem. Je hebt om te beginnen zelf niet geprogrammeerd, je hebt een probleem met andermans thumbnail class. Bovendien heb je een probleem met het instellen van PHP, niet met het programmeren erin. Je topic krijgt dus een enkele reis naar Software Algemeen.

PW>>SA

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.