FreeBSD 8.2 + Apache 2.2 + PHP 5.3

Miroslav Lachman 000.fbsd at quip.cz
Tue Nov 22 10:23:09 CET 2011


Jan Dušátko wrote:
> Ahoj,
>
> Obracim se do plena s nemistnym dotazem, zda si nekdo z vas hral s PHP 5.3.
> V tuto chvili jsem byl porty a upgrade ponekud nemilym zpusobem donucen
> (kompilace zacala na php52, diky zavislostem jsem se probojoval na php53,
> pritom to vzalo sebou par aplikaci) prejit na tuto nepeknou verzi.

Jelikoz jsi nepridal vic informaci, aby bylo jasnejsi, v cem je problem, 
tak ja se zkusim chytnout neceho jineho, nez ceho se chytli ostatni.
Pokud jsem to pochopil spravne, tak jsi do ted provozoval lang/php52 s 
jeho php52-extensions a pri upgrade nejake aplikace se ti to zaclo samo 
upgradovat na lang/php5 a php5-extensions... takze se myslim, ze ti tam 
zustal kus toho a kus onoho a spolecne to nefunguje.

V tom pripade doporucuju pouzit pkg_delete -f php5\* a pkg_delete -f pecl\*
Tim odinstalujes vsechny PHP a PECL porty (extensions). Pak zacni na 
cisto instalovat lang/php5 a udelej si u nej make config, aby sis vybral 
options, ktere u neho opravdu potrebujes mit. Pak php5-extensions a opet 
si vyber jen to, co skutecne potrebujes, at se ti neinstaluje defaultni 
seznam extensions, ktere tebou provozovane webaplikace ani nepotrebuji a 
jen zpusobuji problemy a zbytecne zavislosti.

Pozor zejmena na to, ze mezi php52-extensions a php5-extensions doslo k 
nekolika zmenam. Nektere extensions prestaly uplne existovat (bud byly 
zruseny, nebo jsou nedilnou soucasti lang/php5) a nektere nove tam byly 
pridany. Takze vysledny seznam nainstalovanych extensions u php5 (5.3.8) 
se bude lisit od seznamu php2 (5.2.17_4)

> Muj problem spociva v statu apache. Lepe receno ne v jeho startu, ale jeho
> okamzitem padu. Proto muj dotaz smeruje na uzivatele, kteri tuto verzi
> pouzivaji. Ladili jste neco pri prechodu? Moje soucasne rozpolozeni nelze
> slusnymi slovy opsat, makam na tom jiz od patku. Pripadnym zajemcum poslu
> svoje nastaveni options pro apache22 / php / php-extensions

Co se tyce nutnych uprav, tak nejlepsi je, si zkopirovat produkcni 
php.ini z verze PHP 5.3.8 (php.ini-production) a do neho prenest 
nastaveni z puvodniho php.ini verze 5.2.17 (treba pomoci vimdiff), ale 
fungovat to bude i se starou verzi php.ini, jenom musis najit sekci 
[Date] a pridat

date.timezone = "Europe/Prague"

Druha vec, kterou po prechodu na 5.3.8 patrne pocitis je to, ze v 
divejsi verzi fungujici veci nyni vyhazuji Deprecated warningy. To se 
tyka pouzivani funkci ereg(), eregi(), ereg_replace() a tak dale. Ty se 
musi v PHP kodu nahradit jejich ekvivalentem pcre.
A pak jeste varovani, ze mas prestat pouzivat safe_mode, protoze v 
pristi verzi PHP uz safe_mode nebude.

Je tam jeste par dalsich rozdilu, ale to se tyka spis primo PHP scriptu, 
nez nastaveni serveru
http://php.net/manual/en/migration53.php

Mirek

PS: recode nepouzivam, takze to nemuzu nijak komentovat


More information about the Users-l mailing list