[apache] Errors van website-A in website-B mogelijk? *

Pagina: 1
Acties:

  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
Ik heb een probleem met 2 websites die op één machine draaien. Deze server is niet door mij ingericht, maar ik kan vertellen dat het een linux-server is met apache en php.

Ik krijg regelmatig de onderstaande melding als ik rond surf over één van de sites:
code:
1
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11520 bytes) in ...

De ... kan een file zijn in de website die ik bekijk, maar ook een file van de andere website (en andersom :? ). Ze beviden zich uiteraard in een verschillend path en verschillende "documentroot".

Het probleem is als volgt:
Ik denk dat het een probleem is dat te maken heeft met de inrichting van de server cq. apache/php-parser. Dus dat meld ik bij de beheerder van de server, die vindt dat het aan mijn code ligt.

Vraag:
Is het mogelijk dat zulke fouten worden veroorzaakt door één van deze gescheiden websites/code of moet het een probleem zijn met de server?
offtopic:
Ik zat te twijfelen over de plaats van deze post, NOS of P&W. Hopelijk zit ik goed.

edit:
website-B is uiteraard met een T

[ Voor 3% gewijzigd door MIT op 13-05-2004 20:28 ]

No Signature


  • real-doc
  • Registratie: Mei 2003
  • Niet online
Het lijkt erop dat php zegt: "hey, je mag 8MB geheugen gebruiken, maar als ik die 11520 die je graag wil hebben erbij vraag, ga je daar overheen, maar dat mag niet!"

Ofwel, ik zou zeggen, kijk ns na of je geen enorme stapel objecten o.i.d. in een lusje in je code aanmaakt :)

  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
real-doc schreef op 13 mei 2004 @ 20:34:
Het lijkt erop dat php zegt: "hey, je mag 8MB geheugen gebruiken, maar als ik die 11520 die je graag wil hebben erbij vraag, ga je daar overheen, maar dat mag niet!"

Ofwel, ik zou zeggen, kijk ns na of je geen enorme stapel objecten o.i.d. in een lusje in je code aanmaakt :)
En daar sla je de spijker op z'n kop....
Ik vind uiteraard ;) dat mijn code klopt, en dat vindt persoon 2 met zijn website ook. Ik kan zijn code niet zien en hij die van mij niet (wat overigens ook te groot zou zijn (compleet cms)). Ik begrijp wel wat de foutmelding betekent, ik wil alleen weten of het de inrichting van de server kan zijn of de code van Mr.2 (en uiteraard liever niet dat van mij :P )

offtopic:
Thnx voor de topic titel en m'n 2e post!

[ Voor 6% gewijzigd door MIT op 13-05-2004 20:46 ]

No Signature


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
De PHP documentatie doet vermoeden dat die limiet een beperking is aan de hoeveelheid geheugen die ten behoeve van jouw script gealloceerd kan worden. Andere scripts zouden daar niets mee te maken moeten hebben. Er klopt dus zeker iets niet aan de webserver of de PHP module.

[ Voor 3% gewijzigd door Soultaker op 13-05-2004 21:00 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 11:23
Soultaker schreef op 13 mei 2004 @ 21:00:
De PHP documentatie doet vermoeden dat die limiet een beperking is aan de hoeveelheid geheugen die ten behoeve van jouw script gealloceerd kan worden. Andere scripts zouden daar niets mee te maken moeten hebben. Er klopt dus zeker iets niet aan de webserver of de PHP module.
Volgens mij klopt er iets niet aan jouw scritp!! Je krijgt volgens mij alleen een php error als er iets mis gaat in het script dat jij uitvoert. Dus ook alleen een memory error als die in jouw script - wat jij op dat moment uitvoert - wordt gevonden. Het ligt dus juist niet aan de server of de php-module maar aan een memory-lek oid wat je zelf hebt ingebouwd.....

Regeren is vooruitschuiven


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
Ik heb geen problemen met scripts hoor. ;)

De topic starter zegt dat als hij zijn website bezoekt foutmeldingen krijgt van pagina's die helemaal niet bij zijn website horen. Het lijkt er wat mij betreft op dat de server dus dingen door de war haalt. Een verklaring heb ik er niet voor, maar het lijkt me dus niet (uitsluitend) een fout van de TS.

Immers, als alleen de TS het fout zou doen, dan zou 'ie uitsluitend foutmeldingen over zijn eigen pagina's krijgen.

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 14-05 15:52
Het lijkt mij inderdaad een probleem met de apache. zitten de twee websites waar jij het over hebt onder de zelfde virtual host of user?
Je kunt proberen een:
PHP:
1
ini_set ( "memory_limit", "32M");

in je scripts te gebruiken, of proberen het in een .htaccess met:
code:
1
php_value memory_limit "32M"


Wellicht dat het het probleem oplost, maar ik blijf het vreemd vinden dat een andere site errors veroorzaakt in de jouwe.

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
gooi jouw site eens op een andere webserver (zet apache+php op je eigen pc ofzo) en kijk of je dan problemen krijgt...dan weet je zeker dat 't niet van een andere site kan komen.

  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
Soultaker schreef op 14 mei 2004 @ 00:42:
Ik heb geen problemen met scripts hoor. ;)

De topic starter zegt dat als hij zijn website bezoekt foutmeldingen krijgt van pagina's die helemaal niet bij zijn website horen. Het lijkt er wat mij betreft op dat de server dus dingen door de war haalt. Een verklaring heb ik er niet voor, maar het lijkt me dus niet (uitsluitend) een fout van de TS.

Immers, als alleen de TS het fout zou doen, dan zou 'ie uitsluitend foutmeldingen over zijn eigen pagina's krijgen.
Zo zat ik inderdaad ook te redeneren. Dit klinkt voor mij nog steeds het aannemelijkst.
beetle71 schreef op 14 mei 2004 @ 09:34:
Het lijkt mij inderdaad een probleem met de apache. zitten de twee websites waar jij het over hebt onder de zelfde virtual host of user?
Ik neem aan dat we onder verschillende virualhosts zitten (ander ip, andere php.ini, andere docroot, ander path). De users zijn denk ik ook verschillend, hoewel de server-admin wel veel heeft zitten knoeien met rechten en groepen vanwegen ernstige beveiligings risico's.
MissingDog schreef op 14 mei 2004 @ 09:42:
gooi jouw site eens op een andere webserver (zet apache+php op je eigen pc ofzo) en kijk of je dan problemen krijgt...dan weet je zeker dat 't niet van een andere site kan komen.
Dit heb ik al is gedaan, en dan heb ik geen errors. Het probleem met dat soort "tests" is dat je zoveel aspecten veranderd, dat je eigenlijk niets zinnigs meer kan zeggen over de oorzaak.
T-MOB schreef op 14 mei 2004 @ 00:35:
[...]


Volgens mij klopt er iets niet aan jouw scritp!! Je krijgt volgens mij alleen een php error als er iets mis gaat in het script dat jij uitvoert. Dus ook alleen een memory error als die in jouw script - wat jij op dat moment uitvoert - wordt gevonden. Het ligt dus juist niet aan de server of de php-module maar aan een memory-lek oid wat je zelf hebt ingebouwd.....
Zou je kunnen verklaren hoe jij denkt dat het komt dat ik een foutmelding krijg van een script dat ik niet heb gemaakt?

No Signature


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

Rechtstreek uit de manual van PHP
memory_limit integer

This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a server. In order to use this directive you must have enabled it at compile time. So, your configure line would have included: --enable-memory-limit. Note that you have to set it to -1 if you don't want any limit for your memory.

As of PHP 4.3.2, and when memory_limit is enabled, the PHP function memory_get_usage() is made available.
Het zal dus echt aan het script liggen dat jij op dat moment aanroept. De limiet van 8M is niet veel maar voor een simpele website voldoende. Zeker als je met bijvoorbeeld afbeeldingen werkt (GD-lib) dan zal dat behoorlijk wat gheugen kosten. Dus analyseer eerst eens je eigen script ipv de ander de schuld te geven.

buit is binnen sukkel


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 11:23
MIT schreef op 13 mei 2004 @ 20:25:

De ... kan een file zijn in de website die ik bekijk, maar ook een file van de andere website (en andersom :? ). Ze beviden zich uiteraard in een verschillend path en verschillende "documentroot".
Mmmz ik geloof dat ik deze zin verkeerd heb opgevat. Met "... kan zijn..." bedoel je dus dat je soms errors krijgt van een ander script, oftewel een script dat je niet hebt gemaakt. Dat kan ik niet verklaren, ik weet alleen niet beter dan dat PHP alleen errors geeft op scripts die jij aan het uitvoeren bent. Het is btw een PHP error, in een poging een memory-overload op mijn eigen server te creeëren ( |:( ) gaf Apache nl. de volgende fout:
code:
1
FATAL:  emalloc():  Unable to allocate 306110017 bytes


Komt de foutmelding uit het andere script altijd van dezelfde file? Misschien include de server-beheerder standaard wel een PHP script in elk bestand....

Regeren is vooruitschuiven


  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
ripexx schreef op 14 mei 2004 @ 10:54:
Rechtstreek uit de manual van PHP

[...]


Het zal dus echt aan het script liggen dat jij op dat moment aanroept. De limiet van 8M is niet veel maar voor een simpele website voldoende. Zeker als je met bijvoorbeeld afbeeldingen werkt (GD-lib) dan zal dat behoorlijk wat gheugen kosten. Dus analyseer eerst eens je eigen script ipv de ander de schuld te geven.
Even voor de duidelijkheid, ik geef niemand de schuld! Ik probeer te achterhalen of fouten van verschillende websites door elkaarheen kunnen lopen. Nog wat extra informatie:
- Server en website-A zijn van de server-admin
- Website-B is van mij
Wat jij nu zegt komt er op neer dat we beiden brakke code hebben geschreven! Want het is de code "ik" op dat moment oproep. Dat kan een pagina in website-A zijn, maar ook in B. We hebben dus beiden de zelfde fout gemaakt in volledig verschillende applicaties?

Ik ben best wel bereid te accepteren dat de code van één van de sites niet goed is, maar beiden...Nee. Als de fouten door elkaar heen kunnen lopen...Ja. Maar daar geef je geen antwoord op.

No Signature


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

MIT schreef op 14 mei 2004 @ 11:42:
[...]

Even voor de duidelijkheid, ik geef niemand de schuld! Ik probeer te achterhalen of fouten van verschillende websites door elkaarheen kunnen lopen. Nog wat extra informatie:
- Server en website-A zijn van de server-admin
- Website-B is van mij
Wat jij nu zegt komt er op neer dat we beiden brakke code hebben geschreven! Want het is de code "ik" op dat moment oproep. Dat kan een pagina in website-A zijn, maar ook in B. We hebben dus beiden de zelfde fout gemaakt in volledig verschillende applicaties?
Je roept dus een pagina aan die zowel scripts van jouw als die van website B gebruikt. Je zal dan toch moeten achterhalen waar, hoe open je dan die pagina, heb je een link?
Ik ben best wel bereid te accepteren dat de code van één van de sites niet goed is, maar beiden...Nee. Als de fouten door elkaar heen kunnen lopen...Ja. Maar daar geef je geen antwoord op.
Het script wat op dat moment wordt aangeroepen gebruikt te veel geheugen. Als dat script bijvoorbeeld een include doet van een script van web-A en web-B dan kan het natuurlijk aan een van die twee includes liggen. Jij blijft in vage termen over website A en B praten maar wie doet nu wat. :? Dus kom eens met wat voorbeelden/uitleg over hoe en wat. De fout melding van PHP is evident en geeft gewoon aan: Het aangroepen script gebruikt meer geheugen dan toegestaan. Dus welk script roep je aan?

buit is binnen sukkel


  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
ripexx schreef op 14 mei 2004 @ 12:35:
[...]

Je roept dus een pagina aan die zowel scripts van jouw als die van website B gebruikt. Je zal dan toch moeten achterhalen waar, hoe open je dan die pagina, heb je een link?

[...]

Het script wat op dat moment wordt aangeroepen gebruikt te veel geheugen. Als dat script bijvoorbeeld een include doet van een script van web-A en web-B dan kan het natuurlijk aan een van die twee includes liggen. Jij blijft in vage termen over website A en B praten maar wie doet nu wat. :? Dus kom eens met wat voorbeelden/uitleg over hoe en wat. De fout melding van PHP is evident en geeft gewoon aan: Het aangroepen script gebruikt meer geheugen dan toegestaan. Dus welk script roep je aan?
Ik include helemaal niks van de ander, ze zijn gescheiden (dus ook de code). Om maar even een voorbeeld te geven:
www.karel.nl --> /var/www/karel/
www.pietje.com --> /var/www/pietje/

Ik open www.pietje.com/index.php en dan krijg ik de volgende foutmelding:
code:
1
2
Fatal error: Allowed memory size of 8388608 bytes 
exhausted (tried to allocate 11520 bytes) in /var/www/karel/voorbeeld.php on line 0

De echte URL's heb je niks aan want die zijn afgeschermd voor de buitenwereld.

No Signature


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

Welk script open je nu? /var/www/karel/voorbeeld.php of /var/www/pietje/index.php

Want als jij die index.php aanroep en voorbeeld.php wordt geopend dan zit er echt iets fout. Open jij daarentegen voorbeeld.php dan gebruikt die iig te veel memory?

Het is verdomt raar als jij een php file aanroep en er wordt een ander terug gestuurd?

buit is binnen sukkel


  • MIT
  • Registratie: Oktober 2001
  • Laatst online: 29-03-2025

MIT

KerMIT

Topicstarter
ripexx schreef op 14 mei 2004 @ 13:25:
Welk script open je nu? /var/www/karel/voorbeeld.php of /var/www/pietje/index.php

Want als jij die index.php aanroep en voorbeeld.php wordt geopend dan zit er echt iets fout. Open jij daarentegen voorbeeld.php dan gebruikt die iig te veel memory?

Het is verdomt raar als jij een php file aanroep en er wordt een ander terug gestuurd?
Ja...daar gaat het dus ook om, ik doe precies wat er staat. Ik zal nog wat vb. geven, maar veel makkelijker kan ik het niet meer maken.
Open www.pietje.com/index.php - fout:
code:
1
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 256 bytes) in /var/www/karel/voorbeeld.php on line 0

Open www.karel.nl/index.php - fout
code:
1
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 256 bytes) in /var/www/karel/index.php on line 0

Open www.pietje.com/top.php fout:
code:
1
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 256 bytes) in unknown on line 0

No Signature


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 25-05 22:36

ripexx

bibs

Dit is echt vaag, of de instellingen van apache/php zijn dus danig veranderd dat het gewoon weg niet meer goed werkt. Want als jij index.php aanroep en geen include doet naar voorbeeld.php maar deze geeft dan wel een fout. Dan wordt deze door de server uitgevoerd. Die server admin heeft er dan toch een behoorlijk zooitje van gemaakt. Die derde melding die je geeft is ook zo lekker want die weet niet een sin welk script de fout optreed. Al met al zal het dan niet aan de code liggen maar hoogst waarschijnlijk aan de server.

Het blijft verder gissen.

buit is binnen sukkel


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 11:23
Ik denk dat de serveradmin heeft ingesteld dat "voorbeeld.php" geprepend wordt aan de output. Bijvoorbeeld om een aantal beperking (safe mode ofzo) aan jou op te leggen... Heeft Karel btw zelf nog niet opgemerkt dat de boel spaak loopt??

Regeren is vooruitschuiven

Pagina: 1