Toon posts:

[PHP/SVN] PHP stopt met parsen zonder error

Pagina: 1
Acties:

Onderwerpen


  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
Ik heb een server welke ik gebruik als testomgeving (Zend Server), database server (postgres) en versie beheer server (SVN). Lokaal ontwikkel ik en doe zo nu en dan een commit. Op de server staat een test-omgeving waarin getest kan worden onder linux (Ubuntu 9.10). Ik wil niet iedere keer alle bestanden via FTP uploaden, dus heb een bash gemaakt, welke een export kan doen vanuit SVN.

Echter op willekeurige momenten treedt er een fout op in de applicatie welke niet te herleiden is. Het resultaat is een wit scherm met de volgende headers:

200 OK

Een andere pagina uit de applicatie werkt prima, en geeft volledige headers terug. Ik ben al een tijd aan het zoeken naar het probleem, maar ik kan er geen structurele oplossing voor vinden. Het blijkt wel dat als ik ga kijken wat er werkt dmv die() op verschillende plekken, het probleem ineens over is. (Bewerk het bestand remote via nano).

Wat ik al heb geprobeerd:
- Alvorens een update worden alle mappen verplaatst naar een backup map (aantal configs moeten later terug)
- Rechten staan goed, www-data is owner (user/group) en op 0755, dit werkt prima.
- In SVN heb ik een meta-tag toe gevoegd voor EOL-style:native

Bij andere fouten komt er iets in de applicatie of php-log te staan, maar dit sterft gewoon een té stille dood. Iemand een suggestie wat ik kan proberen?

"Chaos kan niet uit de hand lopen"


  • X-Lars
  • Registratie: januari 2004
  • Niet online

X-Lars

Just GoT it.

Heb je al gekeken naar de config van met name PHP en DB? Ik doel bijv. op error_reporting, memory_limit, dat soort zaken. Er moet natuurlijk een verschil zijn tussen dev en test.

Edit: als je telkens een export doet, blijven er wellicht files/folders achter die er niet meer zouden moeten zijn?

[Voor 25% gewijzigd door X-Lars op 05-10-2010 17:21]


  • ZaZ
  • Registratie: oktober 2002
  • Laatst online: 22-09 20:42

ZaZ

Tweakers abonnee

X-Lars schreef op dinsdag 05 oktober 2010 @ 17:20:
Edit: als je telkens een export doet, blijven er wellicht files/folders achter die er niet meer zouden moeten zijn?
Daarvoor heb je een force commando.
Wat ik zelf in geautomatiseerde omgevingen altijd doe is een revert en checkout.
Vooral met grotere projecten veel minder zwaar.

Lekker op de bank


  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
@X-Lars:
Het zit 'm niet in de config. Als ik een bestand wijzig door er een die(); in te zetten, op te slaan, een request te doen en de wijziging weer ongedaan maak, dan doet hij het WEL! Heel bijzonder. Ik heb dus het idee dat er een bitje verkeerd staat binnen het bestand. Als ik de export nogmaals doe, is het probleem vaak ergens anders in de applicatie.

In de config kan het niet zitten, want dan is er altijd sprake van een error érgens. Ik gebruik dezelfde DB ook op mijn dev bak (remote).

Voordat ik een export doe, verplaats ik de map en maak ik een nieuwe aan, dus er kan geen 'oude' zooi blijven hangen.

@ZaZ:
Daar zat ik ook aan te denken, echter vind ik het niet logisch om een Working Copy te hebben in de testomgeving. Met name omdat ik dan daar ook een db krijg met allemaal .svn mappen.

"Chaos kan niet uit de hand lopen"


  • X-Lars
  • Registratie: januari 2004
  • Niet online

X-Lars

Just GoT it.

storeman schreef op dinsdag 05 oktober 2010 @ 19:11:
@X-Lars:
Het zit 'm niet in de config. Als ik een bestand wijzig door er een die(); in te zetten, op te slaan, een request te doen en de wijziging weer ongedaan maak, dan doet hij het WEL! Heel bijzonder. Ik heb dus het idee dat er een bitje verkeerd staat binnen het bestand. Als ik de export nogmaals doe, is het probleem vaak ergens anders in de applicatie.

In de config kan het niet zitten, want dan is er altijd sprake van een error érgens. Ik gebruik dezelfde DB ook op mijn dev bak (remote).
Je kan met o.a. error_reporting wellicht wel errors loggen. Het lijkt me sowieso een goed idee om de phpinfo() van beide omgevingen eens te vergelijken.
Voordat ik een export doe, verplaats ik de map en maak ik een nieuwe aan, dus er kan geen 'oude' zooi blijven hangen.
Wellicht handig om dit met bijv. een Ant build script te doen. Je kan ook iets als rsync gebruiken om dit te automatiseren.
@ZaZ:
Daar zat ik ook aan te denken, echter vind ik het niet logisch om een Working Copy te hebben in de testomgeving. Met name omdat ik dan daar ook een db krijg met allemaal .svn mappen.
Dat is inderdaad zeker niet de bedoeling. Je kan ook dit automatiseren door je db schema en data te dumpen op dev en te importeren op test (Ant).

Aangezien je svn gebruikt, is het wellicht een idee om gewoon eens een aantal revisies terug te gaan en die te deployen.

  • Gomez12
  • Registratie: maart 2001
  • Laatst online: 23-07 14:44
Hoe groot/snel is je repository? Is het niet gewoon SVN die nog bezig is met het exporteren waardoor er bepaalde bestanden niet staan, of net herschreven worden?

Ter info : wij hebben repositories staan van enkele Gigs groot, daar kan een commit/export wel enkele minuten duren voordat je op F5 in je browser kan duwen.

  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
Hoewel ik het erg op prijs stel dat jullie me proberen te helpen, heb ik het idee dat de essentie van het geheel niet helemaal doorkomt. Als ik het bestand dat de fout geeft wijzig en opsla (als is het maar een extra spatie), dan werkt het wél weer!

Je zou denken dat error reporting errors zou laten zien, maar dat is dus niet zo. Error Reporting staat op E_ALL en display errors staat On evenals display_startup_errors, dus dat kan het niet zijn.

@X-Lars: Ik heb een bash bestand welke die handelingen uitvoert, vanuit php doe ik een exec() zodat de goede user dit doet en alle bestanden door www-data zijn te benaderen. Je oplossingen met rsync en ant lijken interessant, maar ik denk niet dat dit de essentie van mijn probleem is.

@Gomez12: Mijn repo is niet zo groot. SVN is zeker niet bezig, omdat ik in de webinterface kan zien dat de export klaar is dmv exec();

"Chaos kan niet uit de hand lopen"


  • Voutloos
  • Registratie: januari 2002
  • Niet online
storeman schreef op dinsdag 05 oktober 2010 @ 21:28:
Als ik het bestand dat de fout geeft wijzig en opsla (als is het maar een extra spatie), dan werkt het wél weer!
Om uit te sluiten dat de editor iets fixed: voldoet een touch ook?

Heb je iets als een opcode cache draaien? Of een funky nfs config?

{signature}


  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
hmm... lijkt dat dat verschil maakt. Ik heb net een poging gedaan een "wit scherm" te fixen, heb heel wat bestanden getouched, maar uiteindelijk lijkt het wel te hebben geholpen. Probleem gevonden dus! Nu nog een oplossing...

Er draait inderdaad een opcode cache (Zend Optimizer+), daarnaast heb ik APC draaien. Eens verder experimenteren.

Tips zijn welkom :D

"Chaos kan niet uit de hand lopen"


  • Voutloos
  • Registratie: januari 2002
  • Niet online
Deploy naar een nieuwe locatie en gooi in 1x een symlinkje om. Dan heb je geen problemen met caching meer, en bovendien ook niet tijdelijk een halve installatie. :)

{signature}


  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
klinkt als een plan :) !

[Voor 4% gewijzigd door storeman op 05-10-2010 23:00]

"Chaos kan niet uit de hand lopen"


  • storeman
  • Registratie: april 2004
  • Laatst online: 14:03
Ik krijg het niet voor elkaar om een symbolic links werkend te krijgen. Het resultaat blijkt alleen maar meer witte schermen zonder errors. Ik heb m'n update script uitgebreid met 'apc_clear_cache', dit lijkt te schelen, maar kan ik nog niet met 100% zekerheid zeggen.

"Chaos kan niet uit de hand lopen"


  • Cartman!
  • Registratie: april 2000
  • Niet online
De combinatie APC en Zend Optimizer kan nogal problemen opleveren of is dat tegenwoordig verholpen? Misschien ook nog PHP z'n eigen filesystem cache uitschakelen met clearstatcache(); ?

  • Voutloos
  • Registratie: januari 2002
  • Niet online
En toch moet er ook iets in de logs verschijnen... Check dat nog eens... :)

{signature}

Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee