OT php 5.3.2
Dan Lukes
dan at obluda.cz
Mon Apr 12 10:20:51 CEST 2010
On 04/12/10 09:40, Lubomir Majersky:
> Po upgrejde PHP z verzie 5.2.12 na 5.3.2 sa deje nasledovne:
> u jedneho servera mi vsetko slape, jedine z phpMyAdminom mam problem v
> tom, ze po prihlaseni sa, vidim prazdnu stranku...
> u dalsieho servera mi nenabehne apac (core dumped)
> a u dalsieho servera mi pri spustani apaca cez 'apachectl graceful'
Pro programy je obecne smrtelne, pokud program A pri sve cinnosti
pouziva dynamicke knihovny L1 a L2 pro ktere plati, ze jak L1 tak L2
pouzivaji knihovnu se jmenem L3 - jenze - pri prekladu byl L1 prelozen
proti jine verzi ci modifikaci knihovny L3 nez L2.
PHP je konglomerat desitek ruznych modulu zalozenych na desitkach
knihoven a prostoru k vyse uvedenemu je tam hodne.
Typickym kandidatem byva knihovna libcrypto - ktera muze pochazet bud'
ze zakladniho systemu, nebo z portu a problem nastane pokud je L2
prelozena proti libcrypto ze systemu a L2 proti libcrypto z portu,
nicmene, problem muze nastat i v pripade, ze jak L1 tak L2 jsou obe
prelozeny proti libcrypto z portu - kazda ale proti jine verzi.
Dalsi oblibeny zdroj nekonzistenci je klientska knihovna od MySQL ci
jine databaze - zase - dva moduly prelozene proti jinym verzim
databazoveho engine.
Ve vyctu knihoven bych mohl pokracovat prakticky donekonecna.
Typickym zdrojem nekonzistence je "nekonzistentni spravce", ktery cast
packages je instalovuje z nejakeho externiho zdroje, cast z jineho
a/nebo prelozena vlastnimi silami z portu. Nekdy ale muzes instalovat i
ze stejneho zdroje - ovsem - s casovym odstupem.
Pri upgradech neuskodi cise /usr/ports/UPDATING - pokdu je problem
nekonzistence u konkretniho update dopredu znam, byva tam popsan, ale ne
vzdy je dopredu znam - kombinaci nejruznejsich nainstalovanych modulu je
proste prilis mnoho.
Muzes zkusit pulenim intervalu hledat ktere moduly je potreba v PHP
zablokovat aby problem zmizel - a pokud je najdes, tak preinstalovat jen
ty. Ale to je, zaprve, zdlouhave, za druhe, objevis tim jen ty problemy,
ktere se projevuji dostatecne tragicky uz pri startu Apache a/nebo PHP.
Ve skutecnosti se ale problemu mohou objevit jen pri pouziti nejake
konkretni PHP funkce a co hur, problemy nemusi mit podobu "spadnuti",
ale proste to jen nebude fungovat dobre.
Takze je mozna lepsi tenhle pokus o napravu uplne preskocit a rovnou
postoupit k nasledujicimu - a tim je kompletni reinstalace vsech
nainstalovanych portu - a to i tech, u kterych nedoslo ke zmene verze.
Dulezite je, aby vsechno co budes instalovat pochazelo z jednoho zdroje
- bud' si to vsechno sam preloz, pouzijes li externi prelozene balicky,
tak vsechny z jednoho zdroje.
Dan
More information about the Users-l
mailing list