Nacházíte se zde: Úvod Podpora Nápověda Migrace aplikací Přesun z PHP 4 na PHP 5.6

Přesun z PHP 4 na PHP 5.6

Na této stránce uvádíme popis technických rozdílů mezi PHP řady 4 a 5.6. Tyto informace Vám pomohou při přesunu aplikace z PHP 4 na PHP 5.6.

DŮRAZNĚ VARUJEME: NEPOUŠTĚJTE SE SAMI DO ÚPRAV APLIKACÍ, POKUD NEJSTE PROGRAMÁTOR

PHP řady 5 přirozeně navazuje na řadu 4 (verze 5.6 je poslední z této řady). Řada 5 je vyvíjena od roku 2004 a ukončení její podpory nastane na konci roku 2018 (my ji na našich službách ale budeme podporovat ještě několik let). Vzhledem k větší příbuznosti s PHP 4 si přesun pravděpodobně vyžádá méně změn v kódu aplikací oproti přesunu z PHP 4 na PHP 7.

Fungování aplikací přes interpret PHP 5.6 si můžete vyzkoušet již nyní na stávajícím serveru. Stačí na Vašem počítači nastavit ruční překlad adres podle návodu v nápovědě, použijte IP adresu 91.239.200.65. Pokud budete provádět úpravy kódu, doporučujeme aplikaci zkopírovat, například na nějakou subdoménu (aby nedošlo k její nefunkčnosti v současné produkčním prostředí).

V případě zájmu si můžete přečíst hostingovou zprávu o plánovaném ukončení podpory PHP 4 na Českém hostingu.

Změny v PHP a webserveru

Změny v PHP enginu jsou detailně popsány v průvodcích pro migraci mezi jednotlivými řadami, které vývojáři publikovali na webu php.net. Konkrétně se jedná o migraci z PHP 4 na PHP 5.0, z PHP 5.0 na PHP 5.1, z PHP 5.1 na PHP 5.2, z PHP 5.2 na PHP 5.3, z PHP 5.3 na PHP 5.4, z PHP 5.4 na PHP 5.5 a z PHP 5.5 na PHP 5.6. Některé změny jsou i v konfiguraci webserveru. Změny, které mohou aplikace zasáhnout nejčastěji a jejichž řešení bude vyžadovat větší či menší úpravy:

  • Zrušení register_globals
    V PHP 4 je ve výchozí hodnotě register_globals zapnuto, od PHP 5.4 je toto nastavení úplně zrušeno (čili je stále vypnuto). Řešení uvádíme v nápovědě v článku Globální proměnné.
  • Změna výchozího nastavení session.auto_start
    V PHP 4 máme výchozí hodnotu direktivy session.auto_start On, od PHP 5 Off. Řešení je velmi jednoduché - buď na začátku skriptu, který potřebuje pracovat se sessions, zavolat funkci session_start(), nebo si v klientské sekci v nastavení PHP pro příslušnou (sub)doménu session.auto_start zapnout.
  • Zrušení magic_quotes_gpc
    Automatické escapování je v PHP 4 ve výchozím nastavení zapnuto, od PHP 5.4 je úplně zrušeno (čili je stále vypnuto). Řešením je ošetřovat data pomocí funkcí k tomu určených - např. addslashes().
  • Změna výchozího nastavení allow_url_include
    Includování vzdálených URL je v PHP 4 ve výchozím nastavení povoleno, od PHP 5 zakázáno (a z bezpečnostních důvodů jej ani povolit nelze). Bližší informace a možné řešení najdete v nápovědě v článku Includování stránek.
  • Změna systému oprávnění
    Zatímco na serverech s PHP 4 je při práci se soubory (a adresáři) třeba zohledňovat, jak byl soubor na serveru vytvořen (jestli PHP skriptem, nebo nahrán přes (S)FTP), na serverech s PHP 5 a dále to díky upravenému a zjednodušenému systému oprávnění už není třeba. Výchozí práva zde umožňují se všemi soubory plnohodnotně pracovat všemi způsoby. Pokud ale ve svých skriptech nějak operujete s oprávněním, bude potřeba tuto funkcionalitu upravit, nebo vypustit (protože měnit práva už není třeba). Bližší informace najdete v nápovědě v článku Přístupová práva a vlastníci souborů.
  • Změna jména adresáře hlavní domény
    Na serverech s PHP 4 je aplikace na hlavní doméně umístěna v automaticky vytvořeném adresáři začínajícím www. (např. www.example.com). Na serverech od PHP 5 a dále je tento adresář přejmenován - www. bylo vypuštěno (takže se nyní jmenuje např. example.com). Pokud někde ve svých skriptech pracujete s cestou k tomuto adresáři, bude potřeba tento údaj náležitě upravit.

Změny v databázích

Současně se změnou používané řady PHP dojde i ke změně používaného databázového systému. Na serverech s PHP 5.6 je k dispozici MySQL řady 5.5. Oproti MySQL 4.0 používané na webserverech s PHP 4 došlo k mnoha změnám, nicméně jedinou významnou zpětně nekompatibilní je úprava práce s kódováním. Pro zajištění správného zobrazení textů z databáze je po připojení potřeba zavolat SQL dotaz, kterým se definuje kódování pro komunikaci mezi aplikací a databází. Bližší informace a příklady najdete v nápovědě v článku Kódování v MySQL/MariaDB.

Zpět na nadřazené téma

Objednejte si hosting ještě dnes

Špičkový webhosting s pohodlnou klientskou sekcí a profesionální zákaznickou podporou.

  • 14 dní na vyzkoušení
  • Garance vrácení platby do 30 dnů

125 Kč 59 Kč

71,39 Kč s DPH/měsíc

Akční sleva 53 % pro nové objednávky na 1. rok

Nahoru