Nasazení eshopu na IIS
Tento dokument se zabývá problematikou nasazení eshopu na IIS a instalací jeho součástí a testování.
Před samotnou instalací Eshopu, je nutné mít připraveno a nainstalováno:
- IIS (Správce internetové informační služby)
- Aplikační server
- Server webových služeb
- PHP verze 5.6 (pro responzivní e-shop), PHP verze 7.4.3 až 8.3.0 (64 bit) pro šablonovací e-shop
Instalace a nastavení jednotlivých součástí budou podrobně popsány v dalších kapitolách.
K2 aplikační server
Tento instalační balíček slouží k instalaci aplikačního serveru IS K2 verze 3. Aplikační server pak slouží pro obsluhu webových klientů, kteří se na aplikační server připojují.
Softwarové požadavky
Prvním požadavkem instalátoru aplikačního serveru je nutnost mít spuštěnou instalaci s administrátorským oprávněním. Jelikož tuto podmínku musí splňovat již K2 instalátor samotný, je tímto zajištěno, že se toto oprávnění přenese i na všechny instalace spouštěné z K2 instalátoru. Pro jistotu toto oprávnění testuje každá instalace, takže v případě nedostatečného oprávnění by instalátor zobrazil hlášení.
Druhým požadavkem je nutnost mít nainstalovaný IS K2, a to verze, která odpovídá verzi aplikačního serveru, minimálně na úrovni verzi releasu verze, to znamená např. 3.135.3.
Pokud jsou výše zmíněné podmínky splněny, pak můžeme spustit instalaci.
Instalace
Po spuštění instalace se zobrazí první dialog, který uživatele informuje, že je spuštěn instalátor pro produkt K2 Aplikační server a navíc zobrazí číslo verze, která bude nainstalována, viz Obr.: Start instalace AS.
Obr.: Start instalace AS
Po stisknutí tlačítka Další přejdeme k druhému dialogu, který obsahuje licenční ujednání, která po přečtení musíme akceptovat, abychom mohli pokračovat dále. Ujednání akceptujeme, zatrhnutím volby S podmínkami licenční smlouvy souhlasím, viz Obr.: Licenční ujednání AS.
Obr.: Licenční ujednání AS
Tlačítkem Další se dostaneme na třetí dialog, kde je uživatel vyzván k zadání cesty k nainstalované K2, viz Obr.: Cesta k IS K2. Tlačítkem Změnit můžete procházet klasickým dialogem adresáře na fyzických discích, případně na síti.
Obr.: Cesta k IS K2
Pokud ve vybraném adresáři není nainstalován IS K2, pak je při pokusu o pokračování v instalaci zobrazeno varovné hlášení, které nedovolí pokračovat v instalaci, dokud není vybraná platná cesta, viz Obr.: IS K2 nenalezen
Obr.: IS K2 nenalezen
Pokud je v adresáři nalezena platná instalace IS K2, instalace po stisknutí tlačítka Další pokračuje k dalšímu dialogu, který slouží k výběru instalační cesty. Tedy cesty kde se bude aplikace instalovat. Tlačítkem Změnit můžete procházet klasickým dialogem adresáře na fyzických discích.
Obr.: Instalační adresář
Po výběru instalačního adresáře a stisku tlačítka Další se zobrazí dialog, který vyzve uživatele, aby zadal název aplikačního serveru, včetně popisu (určen pro jednodušší rozpozdnání aplikačního serveru) a mandanta, viz Obr.: Název aplikačního serveru K2. Tato hodnota slouží jako jedinečná identifikace konkrétního aplikačního serveru mezi více instalacemi těchto aplikačních serverů. Pomocí této identifikace se pak budou připojovat weboví klienti ke správným aplikačním serverům.
Obr.: Název aplikačního serveru K2
Vyplníme pole Název instance a Popis aplikačního serveru. Do pole Mandant zadáme mandanta, pro kterého má být aplikační server výchozí.
Obr.: Název instance
Volba Zapnout notifikace zapíná notifikace na AS, tzn. do souboru "K2.INI" je doplněn parametr "NSUSERS=K2". Pomocí volby Zapnout plánovač se zapíná plánovač na AS a do souboru "K2.INI" je přidán parametr "SCHEDULESERVICE=1".
Jestliže, je zatržena volba Konfigurovat aplikační server i pro server webových služeb, pak následuje dialog, viz Obr: Nastavení aplikačního serveru, který vyzve k zadání prefixu anonymního uživatele, počtu uživatelů a hesla uživatelů. Tito uživatelé musí být vytvořeni v IS K2 před instalací AS a měli by být číslováni vzestupně např. AN1, AN2 atd. kde AN je prefix a za ním pořadové číslo. Všichni tito uživatelé musí mít stejné heslo.
Pokud je zatržena volba Konfigurovat pro eshop, zobrazí se jako další krok instalace dialog pro Nastavení aplikačního serveru pro Eshop, viz obr. Číslo výchozí kontaktní osoby pro EShop. Zde zadáváme číslo kontaktní osoby, prostřednictvím které je realizováno přihlášení anonymního uživatele eshopu. Tato kontaktní osoba musí mít přiřazenou registraci. Do "K2.INI" aplikačního serveru se rovněž zařadí parametr "AS3ContactPerson".
V případě, že je zatržena volba Konfigurovat pro kontaktní centrum, zobrazí se v rámci instalace aplikačního serveru také dialog, viz obr. K2 uživatel pro kontaktní centrum. Na této obrazovce zadáváme jméno uživatele, pod kterým běží v IS K2 kontaktní centrum a také heslo. Zde zadané hodnoty se pak doplní do "K2.INI" aplikačního serveru jako parametry "CCUSER" a "CCPASWORD". Do "K2.INI" se doplní také parametr "CONTACTCENTERSERVICE=1".
Obr.: Nastavení aplikačního serveru
Obr.: Číslo výchozí kontaktní osoby pro EShop
Obr.: K2 uživatel pro kontaktní centrum
Dalším dialogem v instalaci je zadání jména a hesla uživatele, pod kterým bude běžet služba aplikačního serveru. Může být použit místní systémový účet viz obr. Místní systémový účet - AS anebo účet Windows uživatele, který vyžaduje heslo, viz obr.: Windows uživatel 2 - AS.
Obr.: Místní systémový účet - AS
Také může být použit doménový uživatel i s heslem, viz Obr.: Windows uživatel 2 - AS
Obr.: Windows uživatel 2 - AS
Po stisku tlačítka Další se kontroluje shoda hesel. Pokud nejsou shodné, je uživatel vyzván k opravě. Dalším dialogem v instalaci je zadání K2 uživatele, pod kterým se bude aplikační server připojovat k IS K2. Je možné využít již vytvořeného uživatele nebo vytvořit speciálního uživatele, který bude sloužit jen pro připojení k AS. Pro uživatele, kterým se bude připojovat k AS, není potřeba mít vyhrazenou licenci, viz Obr.: K2 uživatel - AS
Obr.: K2 uživatel - AS
Po stisku tlačítka Další se kontroluje shoda hesel. Pokud nejsou shodné, je uživatel vyzván k opravě.
Pokud jsou hesla shodná, pak se zobrazí dialog, který uživatele informuje o připravenosti instalace. Kliknutím na tlačítko Nainstalovat se pak spustí samotný průběh instalace.
Obr.: Potvrzení instalace
Po úspěšné instalaci je zobrazen uživateli poslední dialog o úspěšné instalaci, viz Obr.: Konec instalace
Obr.: Konec instalace
Na závěr instalace, případně reinstalace Aplikačního serveru se může zobrazit textový soubor se seznamem uživatelů. Důvodem je zpřísněná politika bezpečnosti uživatelských účtů IS K2.
Jednotlivým uživatelům je možné zakázat přístup z webu do IS K2 a všichni uživatelé mají po reinstalaci tento přístup zakázán. V textovém souboru, se na závěr instalace, zobrazí seznam všech uživatelů, kteří mají propojení na kontaktní osobu a zároveň mají zakázán přístup přes web. Tito nebudou moci používat některé funkce, jako je např. schvalování wkfl z emailu. Pro tyto uživatele je nutné nastavit přístup z webu v knize Uživatelé - nastavení hesel.
Obr.: Textový soubor se seznamem uživatelů
Popis
Tento instalační balíček slouží k instalaci aplikačního serveru IS K2 verze 3. Aplikační server pak slouží pro obsluhu webových klientů, kteří se na aplikační server připojují.
Softwarové požadavky
Instalace
Instalace IIS
K2 EShop musí být v ostrém provozu nasazen na serverový operační systém – Microsoft Windows Server. Podporované verze tohoto systému jsou dostupné v dokumentu „Systémové požadavky“ dle verze IS K2. Instalace na klientský operační systém je možná, ale pouze v rámci testu nebo prohlídky DEMO instalace. Tento dokument se zabývá popisem serverové instalace IIS a všech ostatních komponent systému nezbytných pro běh K2 Eshopu.
Dalším krokem je instalace IIS (Správce internetové informační služby. Nejdříve je potřeba spustit Správce serveru a následně možnost Přidat role a funkce.
Obr.: Správce serveru
Prvním krokem jsou instrukce před samotnou instalací, po jejich prostudování se tlačítkem Další posuneme k dalšímu kroku.
Obr.: Průvodce přidáním
V dalším kroku vybereme typ instalace - Instalace na základě rolí nebo základě funkcí.
Obr.: Typ instalace
Výběr serveru, kde má být IIS nainstalováno.
Obr.: Výběr serveru
V dalším kroku kromě defaultně zatržených funkcí je potřeba zaškrtnout volbu „Web server (IIS)“.
Obr.: Role serveru
Další krokem je definice funkcí. Nastavíme Net Framework dle instalace a volby. Zde je potřeba ponechat výchozí nastavení a přidat vývoj aplikací (.NET 4.5, ASP.NET 4.5), Nástroje pro správu (včetně kompatibility IIS 6) a Nezatrhávat „Publikování WebDAV“.
Přidat: ASP.NET 4.6 a pod HTTP Activation (pod WCF Services).
Obr.: Funkce
V dalším kroku zatrhnout CGI (pod Application development) – pro eshop je to nutnost, pro K2 API není nutné.
Obr.: Služby rolí
V tom samém kroku Služby rolí je potřeba nastavit ještě IIS 6 Metabase Compatibility.
Obr.: Služby rolí
V posledním kroku uživatel již jen potvrdí předchozí nastavení.
Obr.: Potvrzení instalace
Instalace K2 API
Server webových služeb K2 (K2 API) je webová aplikace běžící na webovém serveru Microsoft Internet Information Services (IIS). Prostřednictvím aplikačního serveru K2 zpřístupňuje data informačního systému K2 a umožňuje spouštění skriptů a sestav. Webové služby jsou založeny na technice REST, tzn., komunikace probíhá pomocí protokolu HTTP a standardních metod GET (čtení dat), POST (vytváření dat), PUT (modifikace existujících dat).
Data je možné číst a posílat buď ve formátu XML nebo JSON.
Po zadání kořenové URL adresy K2 API do prohlížeče je možné procházet základní popis služeb a prostředků/operací pomocí dynamické nápovědy.
Instalace a základní nastavení
Prerekvizity:
- V licenci K2 musí být dostupné alespoň jedno vlákno K2 API (položka Počet sdílených uživatelů) a v K2 založen odpovídající počet tzv. anonymních uživatelů s loginem složeným se shodného prefixu a na konci doplněným o pořadové číslo (např. „AN1“ – „AN5“). Tito uživatelé musí mít shodně nastavená práva i shodné heslo.
- Nainstalovaný a spuštěný aplikační server se zatržením „Konfigurovat aplikační server pro server webových služeb“ a „Konfigurovat aplikační server pro Eshop při instalaci. Pokud tyto volby při instalaci nebyly zatrženy, je možné u existující instalace AS doplnit v konfiguračním souboru K2.INI tyto parametry (příklad pro 5 vláken a uživatele pojmenované AN1 – AN5) :
- AS3USER='AN'
- AS3PASSWORD='ANPassword'
- AS3USERS=5
- AS3IO=2000034152
- AS3Contactperson=65 (číslo kontaktní, která slouží pro přístup anonymním uživatelům)
- Server, na kterém bude K2 API instalován, musí být k dispozici IIS s nainstalovanou podporou ASP.NET a WCF. Při instalaci IIS je nutné zvolit zejména tyto součásti:
- Role: Výchozí + Vývoj aplikací (.NET 4.5, ASP.NET 4.5), Nástroje pro správu (včetně kompatibility IIS 6); Nezatrhávat: Publikování WebDAV
- Funkce: Aktivační služba (Model procesu), Služby WCF (aktivace HTTP), .NET 4.5, ASP.NET 4.5
- V případě HTTPS instalace korektně nastavený certifikát v IIS
- V případě publikace K2 API pro přístup přes internet, povolené použité HTTP/HTTPS porty (standardně 80/443)
Doporučené nasazení pro přístup k K2 API z internetu:
K2 aplikační server by měl být vždy instalován na serveru dostupném pouze ve vnitřní síti. K2 API a případné další webové aplikace) je doporučeno instalovat na samostatný server, který je dostupný z internetu a má omezený přístup do interní sítě povolující pouze komunikace s K2 AS.
Instalace K2 API:
Provádí se pomocí K2 instalátoru. Instalační program K2 API před začátkem instalace kontroluje dostupnost základních vyžadovaných součástí, případně upozorní na chybějící součásti a instalace je zastavena.
Během instalace je potřeba zadat několik údajů:
- Cílový adresář – je možno zvolit libovolný adresář, nemusí být v root adresáři IIS
- Název IIS serveru – zadat název, pomocí kterého se bude k serveru se K2 API přistupovat. Pro testovací instalace je možno zadat i „localhost“ – pod tímto názvem ale bude K2 API dostupný pouze na daném serveru.
- Webová stránka na IIS (Web Site) – zvolte, do které Web Site chcete K2 API nainstalovat. Standardně je na IIS k dispozici pouze „Default Web Site“.
- Název aplikace na IIS – část URL adresy k K2 API za názvem serveru. Pokud bude název serveru „mujserver.cz“ a jako název aplikace uvedete „restservice“, pak základní URL pro přístup k K2 API bude http://mujserver.cz/restservice.
- Název nebo IP adresa počítače, kde běží K2 AS.
- Název instance K2 AS – zadáváno při instalaci K2 AS.
Nejčastější problémy při instalaci a konfiguraci K2 API:
- Chybný název nebo IP adresa serveru s AS nebo chybný název instance AS – zkontrolovat a případně upravit ručně v konfiguračním souboru K2 K2 API – soubor web.config v instalačním adresáři K2 API. Zkontrolovat, zda nic neblokuje síťovou komunikaci mezi server se K2 API a serverem s AS
- AS není nakonfigurován pro K2 API – doplnit konfiguraci viz část Prerekvizity výše
- Chybí anonymní uživatelé nebo jsou zakázáni - viz část Prerekvizity výše
- V licenci K2 není uveden počet sdílených uživatelů nebo je tento počet překročen – aktualizovat licenci K2
- Chybějící součásti IIS – zkontrolovat součásti IIS, viz část Prerekvizity výše
- Chybějící oprávnění pro IIS proces (viz obr.)
Obr.: Chybějící oprávnění
Oprávnění je nutné přidat těmto uživatelům.
Obr.: Uživatelé
Ve většině případů pomůže logování K2 API případně AS. Zapnutí logování K2 API se provádí v konfiguračním souboru web.config, parametry LogPath (cesta k log souboru), LogLevel (typy zpráv, které mají být zaznamenávány, pro ladění doporučeno alespoň Info), LogRequests (umožňuje sledovat zpracovávání jednotlivých požadavků na K2 API i v případě souběhu více požadavků najednou).
Instalace PHP
Pro eshop je nutná instalace PHP verze 7.4.3 až 8.3.0 (64bit non-thread-safe). Odkaz ke stažení PHP je na https://windows.php.net/download/.
Pozn.: Starší verze najdete pod odkazem "Past releases".
Postup:
1. Rozbalte všechny soubory v balíčku PHP .zip do složky podle vašeho výběru, například C:\Program Files\PHP\.
2. Otevřete Správce IIS, na levém panelu Připojení klikněte na hostname vašeho počítače a potom klikněte na funkci Mapování obslužných rutin.
Obr.: Správce IIS - Mapování obslužných rutin
Na pravém panelu Akce zvolte akci Přidat mapování modulů.
Obr.: Správce IIS - Mapování obslužných rutin
Obr.: Správce IIS - Mapování modulů
- Do pole Cesta požadavku zadejte *.php.
- Z nabídky Module vyberte FastCgiModule.
- Do pole Spustitelný program zadejte úplnou cestu k Php-cgi.exe, například C:\Program Files\PHP\Php-cgi.exe.
- Do pole Název zadejte název mapování modulu, například php-7.4.14.
Mapování potvrďtě tlačítkem OK.
3. Na levém panelu Připojení klikněte na hostname vašeho počítače a potom klikněte na funkci Výchozí dokument.
Obr.: Správce IIS - Výchozí dokument
Na pravém panelu Akce zvolte akci Přidat.
Obr.: Správce IIS - Přidat výchozí dokument
Do pole Název zadejte index.php a klepněte na tlačítko OK.
Obr.: Správce IIS - Přidat výchozí dokument
Pozn.: Řádek s Index.php posuňte na první pozici.
Podrobný popis instalace PHP je popsán na learn.microsoft.com/en-us/iis/application-frameworks/scenario-build-a-php-website-on-iis/configuring-step-1-install-iis-and-php.
K2 E-shop
Tento instalační balíček slouží k instalaci internetového obchodu K2. Aplikace K2 E-shop běží v rámci Internetové informační služby. K2 E-shop využívá pro připojení do IS K2 webové služby a ty pak aplikační server. Instalace K2 E-shopu proto již předpokládá jejich existenci.
Softwarové požadavky
První podmínkou instalace K2 E-shopu je instalace Internetové informační služby, dále jen IIS, verze 8.0 a vyšší. Pokud není IIS nainstalována, zobrazí se na začátku instalace varovné hlášení. V rámci IIS je nutné mít zatrženou možnost CGI (Common Gateway Interface) v sekci Webové služby - Funkce pro vývoj aplikací. Tato volba je nutná pro funkčnost PHP v rámci IIS.
Druhým požadavkem pro funkčnost K2 E-shopu je rozšíření IIS o URL Rewrite. Instalace tohoto rozšíření zajišťuje překlad URL adres do čitelné podoby. Pokud není toto rozšíření nainstalováno, zobrazí instalátor hlášení s odkazem ke stažení. Instalace URL Rewrite je zařazena také na záložce Ostatní instalace odkud ji lze stáhnout a nainstalovat.
Obr.: Hlášení instalátoru (chybějící URL Rewrite)
Posledním požadavkem je instalace podpory PHP verze 7.4.3 až 8.3.0 do IIS. Pokud tato podpora nainstalována není, informuje o tom instalátor zobrazeným hlášením. Instalace PHP je blíže popsána v kapitole Instalace PHP .
Obr.: Hlášení instalátoru (chybějící podpora PHP)
Instalace
Po spuštění instalace a splnění výše uvedených softwarových požadavků se zobrazí první dialog, který uživatele informuje, že je spuštěn instalátor pro produkt K2 E-shop, viz Obr.: Start instalace K2.
Obr.: Start instalace K2 E-shop
Po stisknutí tlačítka Další přejdeme k druhému dialogu, který obsahuje licenční ujednání.
Tlačítkem Další se dostaneme na třetí dialog, který slouží k výběru instalační cesty pro K2 E-shop, viz Obr.: Cílový adresář. Tlačítkem Změnit můžete procházet klasickým dialogem adresáře na fyzických discích, případně na síti. K2 E-shop zpravidla instalujeme do domovského adresáře IIS (výchozí adresář IIS je C:\inetpub\wwwroot). Název adresáře pak určuje finální podobu URL adresy e-shopu, která se skládá z adresy IIS a názvu adresáře s instalací produktu K2 E-shop.
Obr.: Cílový adresář
Po výběru instalační cesty následuje dialog, ve kterém určujeme webové služby pro E-shop. Pomocí těchto webových služeb, se K2 E-shop připojuje k IS K2. V tomto dialogu vybíráme Typ protokolu (Http nebo Https), Název IIS serveru (obvykle název počítače, kde jsou webové služby nainstalovány) a Název aplikace na IIS (pojmenování webových služeb pro K2 E-shop). Tyto tři hodnoty tvoří kompletní URL adresu, pro připojení k serveru webových služeb.
Obr.: Webové služby pro E-shop
Další dialogové okno zobrazíme znovu stisknutím tlačítka Další. Zde je pak nutné nastavit přihlašovací údaje pro anonymní přístup do eshopu. Jedná se o přihlašovací údaje nastavené na kontaktní osobě.
Obr.: Přihlášení pro neregistrovaného uživatele
Posledním instalačním dialogem je Nastavení e-shopu. Zde je nutné v poli Číslo e-shopu z K2 zadat RID internetového obchodu z IS K2 pro jeho jednoznačné určení. Dále je zde pole pro určení URL adresy pro přístup k obrázkům.
Obr.: Nastavení e-shopu
Po vyplnění všech údajů pak pokračujeme dále tlačítkem Další. Zobrazí se dialog, který uživatele informuje o připravenosti instalace. Pomocí tlačítka Nainstalovat pak spustíme vlastní instalaci produktu.
Obr.: Připravena instalace K2 E-shop
Po úspěšné instalaci se zobrazí poslední dialog s informací o výsledku.
Obr.: Dokončení instalace
Obrázky pro Eshop
K internetovému obchodu neodmyslitelně patří obrázky. Složka, ze které internetový obchod bude načítat obrázky, musí být vytvořena na stejném místě jako samotný IO. Na této složce je nutné nastavit v části "Procházení adresáře" Povolit jeho procházení.
Obr.: Nastavení procházení složky obrázků pro Eshop
Bezpečné nastavení webového serveru
Pro kontrolu zabezpečení webových stránek lze využít online nástroj Mozilla Observatory https://observatory.mozilla.org/.
Před spuštěním testu je vhodné zaškrtnout volbu Force a rescan instead of returning cached results, která smaže cache prohlížeče.
Obr.: Mozilla Observatory
Po vložení URL adresy eshopu např. https://demoshop.k2.cz a stisku tlačítka Scan Me, aplikace otestuje bezpečnostní nastavení webových stránek.
Obr.: Otestování bezpečnosti webových stránek
Po vykonání testu aplikace se na záložce HTTP Observatory zobrazí výsledek testu a skóre, kterého bylo při testu dosaženo. Smyslem je dosáhnout co nejvyššího skóre. Doporučujeme nakonfigurovat server tak, ať je výsledné skóre alespoň na úrovni B.
Jednotlivé bezpečnostní aspekty webových stránek jsou bodově hodnoceny, kladně nebo záporně, pokud je nastavení nesprávné. Závažné chyby jsou hodnoceny vyšším počtem záporných bodů. K jednotlivým položkám testu lze proklikem získat podrobný popis chyby. Většina správného nastavení zabezpečení webových stránek je o správném nastavení webového serveru. Po každé změně je dobré provést nový test.
Správné nastavení CSP (Content Security Policy) zavisí na uvedení bezpečných zdrojů načítaných skriptů v konfiguraci serveru. Při nastavování omezení resp. povolování bezpečných zdrojů načítaných skriptů, je vhodné otestovat funkčnost webových stránek. V nastavení e-shopu je možné vkládat další zdroje, které musí být taktéž vloženy mezi povolené zdroje.