Změny na www serveru dec59.ruk.cuni.cz
Poslední změny:
- 9. 6. 2009 - upgrade na PHP 5.2.9
- 6. 12. 2005 - upgrade na PHP 5.1.5
- 8. 11. 2005 - upgrade na PHP 5.0.5
- 14. 5. 2005 - upgrade na MySQL 4.1, Apache 2 a PHP 5
Od 14. května 2005 na serveru běží nové verze programů:
- MySQL databáze 4.1.5 místo verze 3.23
- PHP 5 místo verze 4.3.2
- Apache 2.0 místo verze 1.3
Nové verze nejsou zcela kompatibilní, mohou se vyskytnout problémy.
Nastavení přístupových práv
Soubory virtuálních webů (v adresáři /usr/infos/www/public/*) musí mít
nastaveno právo čtení i zápisu pro skupinu, jinak je web server nezobrazí.
Přístupová práva lze nastavit buď z příkazové řádky nebo pokud kopírujete
soubory na server programem WinSCP, tak přímo
z něj. Návod najdete zde.
Nekompatibility MySQL databáze
- Kódování češtiny: MySQL verze 4.1 podporuje různé kódové stránky v jedné
databázi, lze definovat kódovou stránku pro tabulky
i pro jednotlivé sloupce (přesně viz
http://dev.mysql.com/doc/mysql/en/charset.html ). Defaultně je nastaveno
kódování ISO-8859-2, tj. pokud při CREATE TABLE apod. nezadáte parametrem jiné
kódování, databáze předpokládá, že data jsou v ISO-8859-2.
- Varianta "databáze i aplikace ISO-8859-2" - stačí přenést data, pracuje
bez problémů
- Varianta "databáze ISO-8859-2, aplikace cp-1250" - přenést data,
aplikaci nutno upravit. Místo počátečního "SET CHARACTER SET cp-1250_latin2"
použít "SET NAMES cp1250"
- Varianta "databáze cp-1250, aplikace cp-1250" - po přenosu dat funguje
stejně jako na starém systému, tj. vše chodí kromě řazení, ale nedoporučuju.
- Přenos obsahu databáze (v kódování iso-8859-2):
- export na dec59:
- env LANG cs_CZ.ISO8859-2 mysqldump -u login -p databáze
> soubor.sql
- import na dec60:
- env LANG cs_CZ.ISO8859-2 mysql -u login -p
- use databáze
- source soubor.sql
- Funkce password() se od verze MySQL 4.1 liší - zakóduje heslo do řetězce
dlouhého 41 znaků místo původních šestnácti. Pokud aplikace tuto funkci používala
pro ukládání hesel v zakódované podobě, tak s novou verzí databáze nebude
fungovat. Lze použít funkci old_password(), ale jen jako dočasné řešení (neví se,
zda tato funkce bude v dalších verzích MySQL). Doporučené řešení - pro ukládání
hesel použít funkce md5() nebo SHA1().
Nekompatibility PHP
- Soubory musí mít příponu .php, ne .php3 apod.
- Nefunguje konstrukce <?=$ahoj;?>, nahradit <?php echo $ahoj;
?>
- Ve funkci SetLocale() se kategorie uvádí jako konstanta (dříve to byl
řetězec). Např. místo SetLocale("LC_ALL","Czech") pouze SetLocale(LC_ALL,"Czech").
Jinak skript funguje, ale do stránky se vypíše "Warning".
- Místo proměnné $PATH_TRANSLATED použijte $SCRIPT_FILENAME.
- Kompletní seznam viz http://docs.php.net/en/migration5.html
Kódování češtiny v dokumentech
Nový www server už především neobsahuje modul pro podporu kódování češtiny.
Vzhledem k tomu, že www prohlížeče s podporou kódování iso-8859-2 nebo windows-1250
jsou už celosvětově rozšířené, je jeho další použití zbytečné.
u
Výhodné je, že již není nutné, aby všechny dokumenty v jednom adresáři byly
ve stejném kódování.
Server Side Includes
Tato funkce je vypnuta, zapneme ji na vyžádání autora webu.
Vladimír Horák, 8. 11. 2005