Problemy z PHP4
Dan Lukes
dan at obluda.cz
Wed Oct 8 12:37:26 CEST 2003
Matej Kozub wrote:
> s hrozou som zistil, ze sa mi nainstalovala verzia PHP4.3.4 RC1
Na rozdil od kolegy Roberta ja vasi hruzu chapu. To, ze 4.3.4 RC1
obsahuje pouze BUGFixy je sice pravda, ale co je treba dorict - ze je
obsahuje vuci predchoi verzi coz byla nektera z BETA verzi verze 4.3.4.
Je to tedy (spolecne s autory doufejme) STABILNEJSI ale nikoli STABILNI
kod. Ostatne, i popis na WWW pomerne jasne uvadi, ze jde o testovaci verzi.
To, jestli je ve vasem konkretnim pripade pouzit relativne stabilni
4.3.3 se znamymi chybami nebo 4.3.4 RC1, kde jsou sice nektere opravene,
ale nejde o dotestovany produkt a muze tedy mit tunu chyb jinych je
rozhodnuti, ktere musite udelat (a take jste ho udelal) sam. Jednoznacna
odpoved na to, co je spravnejsi, neexistuje.
> Nasledne som si do adresara /usr/ports/lang/php4 nakopiroval
> starsi port PHP 4.3.3 a urobil som toto:
> cd /usr/ports/lang/php4
> make install
>
> Na moje velke prekvapenie som dostal takuto hlasku, s ktorou
> akosi neviem pohnut:
>
> ===> Applying FreeBSD patches for php4-4.3.3
> Ignoring previously applied (or reversed) patch.
> 1 out of 1 hunks ignored--saving rejects to pear/Makefile.frag.rej
>
>>>Patch patch-pear__Makefile.frag failed to apply cleanly.
>>>Patch(es) patch-configure patch-ext::gd::gd.c patch-ext::gd::gd_ctx.c
Ne takhle to opravdu nejde ... ;-)
System "ports" obsahuje pro ruzne externi zdrojaky (a i pro PHP) sadu
patchu, ktere se na stazene drojaky pred kompilaci aplikuji. V mnoha
pripadech se tim fakticky meni jen adresare do kterych se aplikace bude
instalovat, pripadne adresar, kde bude hledat konfiguraci pripadne
optiony gcc pouzite pri kompilaci, nicmene, obecne mohou takove patche
obsahovat prakticky jakekoliv zmeny.
Neni prekvapujici, ze tyto patche jsou "version specific" a nemusi
spravne fungovat na jinych verzich souboru, nez pro ktery jsou urceny.
Popravde receno, to je ten optimistictejsi scenar - horsi situace
nastane, kdyz se patch aplikovat podari, jenze okolnosti v kodu jsou u
jine verze jine a ono to pak dela neco uplne nesmyslneho.
Pokud nejste schopen obnovit takovy obsah adresare
/usr/ports/lang/php4, ktery stahoval a prekladal jeste 4.3.3 a nenajdete
ani hotovy prelozeny package (neb o vam nevyhovuje s jakymi optiony byl
prelozen) pak zbyva prakticky uz jen jedina moznost - preloit si PHP e
zdrojovych kodu bez pomoci "ports" systemu.
Popravde receno, delam to tak uz leta a neni to tak strasne, jak to
vypada. Odmenou vam bude jemnejsi moznost ovlivnovani nastaveni pri
prekladu. Je sice pravda, ze radek
./configure --with-apache=../apache_1.3.28 --enable-track-vars
--enable-memory-limit --disable-short-tags --with-zlib --with-bz2
--with-gd --enable-gd-native-ttf --with-imap --with-imap-ssl
--with-openssl --with-jpeg-dir=/usr/local/lib
--with-png-dir=/usr/local/lib --with-tiff-dir --with-xpm-dir
--enable-dba --with-ndbm --enable-ftp --with-freetype-dir --with-gettext
--with-iconv=/usr/local --with-mysql --with-snmp --enable-ucd-snmp-hack
--enable-sysvmsg --enable-sysvsem --enable-sysvshm
... vypada ponekud hruzostrasne, ale treba u vas bude vypadat lepe ...
Pokud by vam jeho sestaveni delalo problemu, porad muzete v PORTech
nechat nakonfigurovat onu 4.3.4 RC1 a pak se podivat do souboru
config.status, kde bude uvedeno s jakymi parametry byl "configure" volan
a zavolat to se stejnymi i v adresari, kde mate 4.3.3 ...
Dan
More information about the Users-l
mailing list