 Takahol, já jsem Vladja Smitka, jsem z Lintu, už jsem tady měl jednu před náš kuráno, ale opatřičních, tak jsem ještě teďka během přestávek, jak jsem pro vás ještě připravil jednu, kde vám nějaké věcí z tý první, tak můžu víc vysvetlit, ale přede všim vám ukážu, jakoby můj pohled, jakoby na System Operations ve WordPressu. Já jsem přede všim, jsem sítiář, jsem se do vraž, takže jakoby na WordPress pohližím trošku jinak než běžný vývojáři. Já rozlišu několik typů lidí, co s WordPressem pracujou a liší se to podle vztahu příkazoví řáce. Takže kdo z vás příkazou řádku nesnáší, jeden, ten to jsou jako developři, obyčejný, kdo to bude jako nutný zlo, tak se zdá, že jeden to jsou tomu se většinou říká devopáci, že jsou devopři a trošku musí vědět něco o deploymentu, osed vdech a tak. Sys opáci, což mezi mě se myslí, že jsem já, tak brou příkazou řádku jako skvělou věc a pak jsou pluntuční admini, sys admini, který nezajímá, co tam běží, na konfigurou ten server a ovice nestaraj. Takže budeme se na to koukat, jakoby s prostředí, jakoby to sys opáka, což jsem já. Tak, kdybych vám chtěli, tak napad, jak můžete vylepčit svoje vývoví prostředí. Já osobně mám nějaký svůj virtuální server, řík ve virtuálboxu, který, kdyby někdo pak chtěl, tak vám ho můžu nazdílet, iž ho trošku pak učešu, protože zatím je jako by starší, ale mám tam takovýhle jednouchí rozhradní a mám tam pár věcí, který se vám můžou hodit. Mám tam za prví rovnou rozhozany adminer, což je jednouchí, což je snáštodně a spravu na tabáze, pak tam má mail catcher, což je další nástroj, který vám vlastně z toho VPS, když odešlet VPHpčkem e-mail, tak mno zachytí a můžete se kouknout, co vám to odesíla za maily, takže když strářešíte v komers a nějaký transakší maily, tak na testovacím prostředí vám to může docela pomoc. Shell in the box, to je emulátor, příkazový rád, klinuxový webovým pro hřižeči. Takže více méně já jsem přes ten můj virtuál, že opustím, tak jsem schopný se bez problém prostě připojit s webů do příkazových rád, který psá příkazy, který potřebuj, aniž bych musel se připojit, se zháčkem nebo tak. A pak tam vám php info, bych viděl, co se děje. Zároveň, v tom mojem vývojím testovacím prostředí mám několik verzí phpčka, abych si můžu vyskoušit, tak se utřeališí. Mám tam Blackfire.io, což je... znáte Blackfire.io někdo? To je nástoj na profilaci phpčka, že když tam máte nějakej... pustíte vorpres, tak volovám to krásně ukáž, jakový graf, co je dlouho trvalo, co se když spouštěl, kolikrát to volalo. Je to dobrý především pro ladení výkonu. Pak je tam Tential in Box, Maria, Redis, užiličný celíčkový nástroj, tak vp celí, znáte vp celí někdo? 1, 2, 3. Je to perfektní, komand lineová utilita, která vám prostě umůžní kompletně spravovat vorpres příkazoví řádky. Pak je tam výpisken, znáte výpisken, to je nástroj, který dělá bezpečnostní audit libovolný ovor pro svebu, dělá kví triky, že zišťuje verzy, zišťuje, co je mě za plaginy porovnává to z databází známejich zranitelností všech možnejch plaginů, témat a verzi jádra, takže vám to krásně věde, co tam máte špatně, že máte nějaké prostě zranitelné plaginy, nějaké špatní šablony a tak. Perfektní věc, a pak tam mám nějaké drobnosti, les, sas, pro deployment, kompouzer, bauer, grant a tak. Most to nepoužívám, protože web moc nedělám, ale občas si potřebuji, co vyskouš, jak to tam mám. Můžu jednou ještě přepínat mezi verzem a PHP, restartovat služby a tak, takže kdo bude chtít, tak když mě pak osloví, tak já vám můžu ten virtuálek dát, musím těmu na vse nějaký asi návod, jak ho nastartovat, ale kdyby nikdo nemil své vývojů prostředí už úplně zmáknutý, tak mu to může pomoct. VPCLE, VPCLE, to je fakt jako perfektní věc, VPCLE má několik plaginovatelný systém a dáváte příkazy, takže ještě třeba, tedy je VPC plug-in status, tak v příkazových řádky leze teď o služky v opresu, napíše to VPC plug-in status a ono nám to ukáže, jaký tam máte, plaginy, si jsou aktuální, si jsou ponedostupní, aktualizace taky, jenom s komandla jiné, nemusíte prostě vlíz do administrator tak. Mí to spoustit našich věcí, já bych začátu zmínil dvě externí, dva externí nástroly do VPCLE a to je doktor a profil. Doktor je příkaz, který vám provede různí testy v opresu si aktuální, jestli, třeba náhodou nejsou nějaký změný soubory v jádře kuli infekci, jestli třeba ve vlouz, nejsou jaký podřelejí PHP soubory a tak dál, za chvilku to ukážu. VPCLE profil tak to je profilační nástroj, který když nemáte třeba ten blackfire nebo nepůželáte xdebug, tak vám vám aspoň je schopný ukázat jaký část, jaká část by spuštění do warpressu trvala jak dlouho a dokáží to rozložitý na hůky ukážu za chvilku. Já jsem více mé Tolesto jsem zal zmoví nějaký historie servoru, co jsem na poslední třeba v městí se pouštěl na našem serveru, takže to mi vychází mě tenhle si příkazy. WPCLE Search Replays to jsem kazuje milný přednášci, to se výborně hodí, když potřebujete převádíte z testu z devil prostředí na produkci a pošlete změjit url, protože warpress, jak víte, tak dělá absolutní odkazy, takže jakoby potřebujete všude v celém warpressu nahradit, hojtečka, lumítko, lumítko, devil co, záhltete pesel dvoujtečka, lumítko, lumítko, můj krásný superweb na produkci tečka botka sk a když to uděláte před data bázi, tak je problém v tom, že warpress třeba ukládá v tabułce web options, tak ukládá věci serializovaně. Znáte serializaci? To je, že prostě vezme objekt a prostě rozložílo textový ořaděstv. Serializaci má problém v tom. Vždycky u každé položky si říká, kolik tam bylo kolik znaků, jakoby má ta hodnota. Teď, že máte web dev.test tak kdyby se uložila talent Satresa do serializovaného pole, tak to má osm znaků. Když ta produkce můj krásný super stvělí produkční web botka sk, tak to má asi milion znaků, ale to číslo, kdyby se to jednou vše nahradili v tý data bázi, tak to pak nesedí a to pole prakticky přijde do to nastavení. Ten vpc laser replace dělá to, když to tý v těch obšnek, tak to změní, tak i opraví ty velikosti, ty dílky těch řetěs jsou, aby vám to pořád fungovalo. Teď jim se dá jednoduše. Ať už přecházíte z devu prostě na produkci, nebo třeba jenom migrujete z toto, kde se třeba přidá jedno písmenko a rozpadlivě se vám ty obšny, tak to vám všechno nahradí. Double-size stables to vám rozjede krásný výpis prostě jaké velká, jaká tabluka, tak když prostě rozte v opšen z nějakého důvodu, tak asi máte něco problém s nějakými transientami nebo máte problém s nějakými opšnami, že jsou zbytečně velký. Takže tím asi můžete být jak krásný ček, jakoby co vám v databázy zabírá nejví zdat. Plug-in status jsem říkal, šíkovný je, že vlastně s toho vp celíčka můžete rvnou pouštět SQL dotazy, takže nemusíte řešit, abyste se připojeli do ty správný databáze, abyste tam připojeli uživatilským jmeno a jeslo, když něco potřebec vyskoušet jenom prostě rvnou si dáte v podobu query vonosí to samo v Očuchá vaší konfiguraci WordPressu a vytáne si toho jména jesla rvnou ten zápis jakoby pustí. Hodně často se řeší optimalizace databáze WordPressu na to jsou různý vyp optimálizací z plug-in a tak. Jenom, že ty dneské takové prakticky nejsou protože pokud se zabýváte databáze ma trochu víc tak drí se používal databázový engine jako v MySQLku MyESAM který byl náchilnej na to, že tam bylo hodně dat a že se prostě ty databázali a znikala tam nějaká fragmentace neskále se použá inodí bí, který ty jenom z ty problémy nemá tak ty vyp optimálizací a podobní plug-in jsou praktiskou růžení jenom proto aby vám vyčistili databáze od nepotřebnej dat, což jsou nejaké spamoví komentáře což jsou právě revyze článků když máte WordPress základní nastavení tak když cokoliv změníte v článku lůžit, tak on to udělá revyzy až máte starej blog a nemáte teď revyze omezený což je udělat jednoduž je VWP Config PHP tak tam je prostě tisíc revyzí to jednoho článku do historie což samozřejmě pak když už takhle můžem pracujete s tím WordPressem tak jak tu administraci to umí trochu zbrzdit takže ve prevyžím klín tak ten mám to vyčistí tady je ten VEP celý doktor nevím jak je to hodně vidět vyčervenil jsem tam pár položek, který jsou hodně užitečný je tady Auto Load Option Size více méně všechno co ukládáte ve WordPressu, když to je nastavení Shablon a tak, tak jakoby se ukládá na tabulky Options můžou mít funkci Auto Loading že prostě, když WordPress startuje Adro tak všechny co mají, ten Auto Load tak je načtete defaultně, defaultní nastavení je načti to o tím Auto Loadem takže když tam to máte, fakt hodně když třeba si hraje, testujete plug-in a tak v nějaké plug-iny vám tam nechají nějakej bordel po sobě a musíte všechno načítat takže to může fakt vytvořit velikánskej blob několika mega dat tak ten Auto Load Option Size vám můžní rozsklíčovat když si můžete rozhodnout, kde si to opravdu potřebujete nebo ne tak, s bezpečnostních věcí tak tam je Core Verify Chexams to více méně, vezme vaše Adro a porovná to, jestli sedí s Heše všechno soubodu oprotí oficjální WordPress repozitáři tak pokud jste mě nějakou infekci, která vám něco změnila tak tohlenco to odhalí jako, boužel to neodhalí, samozřejmě když tam jako někdo přidal nějakej soubornavíc jo, když tam přidal nějakej tak tohle si to nevšimne ale více méně z tím len s tím tak, jakoby emuje funkci, třeba bezpečnostních pluginů co udělá WordPress, co dělá scan nebo co dělá security aniž by vlastně něco musou byť cokoliv nainstallovaný, přímo ve vašem WordPressu, jako samotným tak to udělá zřádky potom, pěkná věce výce méně na prostá většiná těch backdoorů, co vám infikovou web tak má v sobě nějaký takový leředězec že tam má base64 encodovanou nějakou funkci kterou pak evalant vykoná takže, jakoby to je fakt jako nejčastější nejčastější leředězec, který se objuje v infikovaných webech takže, jakoby tohle, co již občas pustíte a někde najde tohle len z tu hruzu a potom následuje kilometrově leředězec nějakej nisměstných znaků tak pravděpodobně to máte napadný tak tohle, co již se občas pustíte tak vám to může aspoň takový vypadá to čistě není to jako 100% ale, když to len nejde, tak je pluser tak potom php upload, to je další zajímavá věc to je, že vlastně koukne do uploadu, jestli jsou php soubory protože, když tam jakoby uživatelné hrává v obrázky a takovýhle věc, jak by tam nikdy nemělo php soubor když, ale utočník mám napadné WordPress tak někam musí nahrát php většinatřátěch, když je chyba v nějakým plug-inu pro uploady tak, jakoby ten zvětšinout soubory nahrává do služky upload to je samozřejmě ten utočník tam chce jak obejít kontrolu těch přípon a nahrává php soubor do upload to je hodně taký častá věc tak, že tím len s ním příkázem to zase jako by jednoduše ten vp celý najde, aniž byste museli do samotnýho WordPressu nahrávat nějaké další věci více méně, to, co my děláme pro plug-in, protože se nám podařilo všechny věci, co bezpečnostní plug-in dělá tak emulovat na strany serveru proto si myslím, jakoby obecně že i BHB vývojář tak by moh mít trošku vlet vhlede do tý správitěch serverů a tak, protože mu to může užetřit spousty věcí a když ví, jak co uděláte, jak to funguje tak si může pomoct bez toho něžby prostě nasazoval nějaký plug-in který zase musí hlít, aby byl profil profil je perfekný, perfekný taky nástrojek, který vám je profil stage a chcete jak je to stage, chcete, jak lo to trvalo a jak, kolik toho bylo zakešovaný tak vám ukáže vůbec, tady, že trval bootstrap jenom načtení toho základního jádra WordPressu, tady trvalo osusem milifteřin a je to hodně zakešovaný jakej první kvéry jakoby co to načíta občný a takovýchle věci, tak to trvalo tady 0,1 teřiny a templatea samotná, tak to trvala dalších osusem milifteřin takhle jednoduché, aniž byste použádná nějaký kompleksnější profilovací nástroj což většinou jsou rozšíření do PHP tak můžete přesto VPC tak jak by pěkně doca a spojň základně profilovat vaši aplikaci a víte, kde je problém vontou mý vodost víc když si to já řeknu co se vlastně spouští přitom načítaň toho jádra to znamená, že tam už jakoby nějakým způsobem jsou zaangažované plaginy a ty plaginy většinou ještě obře napsaný jak použa nějaký hooky takže si takhle ve filotruekci vět i hook zbytek estejnej a z spotlight občen to je jenom to, že když je tam 0 takže vás to nezatěžují tím, že tam budete mít 50 rádků s nulama jaká část prostě jak dlouho trvala tady když tam třeba ve nějaký špatný plagin, který prostě dělá něco pomalího tak tady ho jednoduše najdete že volal nějaký hook, že se volal vůkomerc něco tady tohle se to funguje pro všechny ty fáze toho načítaňu takže říkám, bez jakýkoliv dalších instalací čehokoliv když máte vpc a lína serveru když se sprofilujete co jak dlouho trvá a můžete najít problém tak páde ještě další jako věcí do vpc líčka SKEFOLD to je generátor základných věcí VEVOR Pressu když potřebujete ujad čaltým můžete samozřejmě kontrol c, kontrol v, nebo použ nebo použete vpc kde řeknete čaltým že chcete vytvořit z toho tématu a VEVOR Pressu nový témat kde jsou základní věce aby to načetlo css s toho hrodiče a nemusí to řešit zvák, hotovo vytvořeno tímhle si jim způsobem vám můžnuje další věci můžnuje vám vytvořit ale vygenerovám hlavičku kam vy si vyplníte ty drobnosti co potřebujete co to nál umí dál to umítrajš učitě níkdo z vás potřeba vytvořit vlastný post type a to je prostě gigantický gigantický kus kodu kde nastavujete labely a prostě hrozně moc věcí samozřejmě existou služby online kterých vám s tím pomůžou se celý vám tady ještě žádá s kefold asi post type to bude post type určitě bude tak vám to vlastně pustí proces který vám vlastně se vás může zeptat na všechny ty věci jak to máme v plu rálu služitý slovo a pak vám to na celíčko vyplivne kus PHP kodu který máte vytvořit vlastní taxonomy zase vypliníte pár věcí v vpc lí a ono vám to vyplivne blok kodu který můžete róvnou použít to nemusíte prostě někam se přepínohle a v dokumentaci jak se to dělá a máte prostě taxonomy samozřejmě ten kód pak už jako vytvořit si musím si napsat tak vytvořiváte spousty třeba různých pluginů odinstallujte plugin že po sobě neuklidí odinstallujte tak by po sobě měl všechno smazat měl by smazat své opšny a měl by smazat transienty znáte transientní promění kdo nezná transientní promění skoro všichni znáj tak transientní proměná to je takový když má WordPress pracovat nějakou složitou operaci třeba vykonat tisí a výsledek je pár nevím pára řádku dát tak to můžu tenhle jste mezi výsledek uložit do databáze a naslovitmu nějakou platnost že to je třeba kdych měl extrémě složitej script který mi zjistí kromá svátek a trvalo by to vygenerovat 22 a výsledek je jenom to ménu tak si to můžu uložit do toho transientu s tím, že můžu řeknu to jen s toho platinom tě 24 hodin problém je, že to platí 24 hodin tak WordPress to z tý databáze s toho transientu smaže až když tam někdo ty data chce a už jsou ekspirovaný když ty data jsou s nějakou mezonu platností a nikdo na ně ne sahal tak tam navždy zůstanou tam, když ovo ty instalujete tak on už si na ty svoje transienty nešáhne a zůstanou mám databázy prostě spousty balastů s tím, že když ho chcete odstradnit zase buto si otevřete databáze nějakým, ten adminer nebo PHP mám jadmin, prostě jen nějakým příkasom mám to vymaže, nebo dáte transient delete všechno ekspirovaný a máte všeště jenom tak na vývoji opřea se vám může stát že byste z nějakého důdu chci když jde dobyt třeba tisíc příspěvků aby se si vyskoušili nějaké třeba řazení a takovéhle věci dělat to oručně nebo prostě nějakým vygenerovací vygenerovací nějakým třeba spil který to udělá tak tam zase bude třeba problém s postmetami a tak V5 celíčkova umí vygenerovat hloupě prostě kolik chcete kolik chcete postu prácticky oni budou mít nadpisy post1, post2, post3 že fakt jako totálně damy posty může se to hodit když něco zkoušíte občasem může stát že stává se to když prostě nastavíte pár pluginů který má nějaký vlastní custom post type oni mají mít nějaký url mají tam nějaký přepisování a někdy jsem může stává se to poháda že VPD write list vám vyskoupný vypsa všechny jako by ty hezký url pravidla který v tom WordPressu máte aby jste se mohli kouknout na co to padlo více méně vy můžete posat url a on mám řekne jaký ten regulár konkrétní byl zrovna použité proto aby vlastně jste se dostali k tomu vašem konkrétnému post type když máte vlastní custom posty pak zjistil jsem, že skoro nikdo neví že VPD celý má tady příkaz prompt a ten slouží proto že když si nepamatujete nebo neví tenho se vám to nechce hledat když se všechny ten příkaz má tak můžete dát prompt tak kdybych chtěl tady chtěl kdybych chtěl chtěl chtěl tím taká bych chtěl chtěl chtěl chtěl tím a dal bych tam pomečka prompt a on se mi zeptá jaký bude ten nový chtěl chtěl chtěl chtěl chtěl chtěl jaký z jaký tém tém je to má bejt vyrobený jak se ta nová tém má ménovat a on se vás na všechno postupně zeptá že jsi nemusíme pamatovat když je tady tyhle jsi příkazy když bude čas může mám to všetě ukázat tak a pak suprová suprová věc teda jako jsem si jim moc lidí neví že výp celíčko vsově má shell chpčko výklasický shell ve který měle na čtený na čtený jádro WordPressu takže víc jemé někdyž pustíte v pošel tak se vám pustí příkazová řádka phpčka ve který může té rovnou použil třeba v WordPressový funkce takže třeba konkrétně Kdybyste nevěděli, chtěli jste si vyskoušet, co dělá v podobu prepare, jak vám modifikuje tentatabázový dotlast, nebo koušíte, já to hodně použám, když kouším různitřa, jak se s co eskipujeme v WordPressu, že ještě po prostu ošetředete vstupit, tak tam je WordPress má tunu různej funkcií na eskipování, eskipování řetězců. A trošku se od sebe lyší, jak chcete vidět, jak to vypadá, tak jako reálně, když to chcete vyskoušet, tak je to prostě složitý. S tím v pošelen, tak by si pustí vypošeli, tam načne jí celý jádro a dáte prostě, nevím, přeou toho, v podobu prepare, dáte ten svůj dotlast, a ono mám to vyplivné, vyplivné, tu konkrétní funkci, jak to vypadá. Jako se samozřejmě, můžete zavola takový ty funkci, jako Damy, url, adresů, blogů a tak, jožen. Fak se to hodí, když prostě pátráté, pátráté v kodexu, co prostě jak se k nížeme dostat, co reálně udělá, tak přes ten v pošel, ne musíte řešit. Můžete se prostě domno vyskoušet. Fak perfektní věc. Tak, teď bych se tady podělil o svůj pohlet obecně navor prez. Já se občas dostávám do sporu s tím, že jako profesionální vývojáři, který používají Continuous Integration, GitLab a takovéhle věci, tak ty zastávají názor, že vlastně ta aplikace samotná by na svoje s vlastných soubore nikdy nezmila šáhnout. S něco jsem deplojoval, a teď tak, jak jsem to udělal, tak to má zůstat. Já s ním úplně nesoulasím. Já, když jako dělám WordPress-y, tak můj WordPress ve věčinou je složený z několika repozitářů. Že mám prostě repozitář, před nám pro Shablonu, repozitář případně pro nějaké svoje další plug-iny a zbytek, tak nechávám žídá seří z vlastním životem, že vlastně, aby mi fungovaly automatické updates, aby uživatel moh, jakoby aktuálizovat s administrace nějaký plug-in nebo tak. Protože zastávám názor, že je lepší WordPress rozbytej, než zranitelný. Takže já chci třeba, když mám všude zapnuté auto-updajty, jádra, jakoby aspoň těch minor verzích, aby chco nejrychléjš mi dorušený patch. Výdenová oprava ve WordPress-u, tak aby se automaticky sama prostě WordPress-y postará o to, aby hned byla nasezená. Klasicky, když řešíte nějaký do Continuous Integration přes nějaký GitLab nebo tak? 1, 2, 3. Tak, jakoby vždycky se pak těch lidí, který tvrdí, že WordPress na sebe nesmí šáhnout, tak se tam, jak mají zvládnout tady patch management, a většinou, jakoby je to takový nou, tak vyšlanová verze, tak jakoby pustím, pustím si workflow, až se mi bude chtít, a pak to celé probubla, nasadí se to. Což správná odpověď byla, když fakt, jakoby máte business critical application, to správný cít to pravidlo, že aplikace na sebe nesmí šáhnout, ale musí být zvládnout tady patch management, takže správná odpověď byla, mám nějakýho svojoho robota, který skoumá, jestli nevyšla nová verze WordPressu, a když víde, tak mi pustí workflow na ten Continuous Integration a Continuous Delivery, aby prostě to proběhlo, provedli se testy, a nasadilo se to automaticky. Já jsem se prakticky za mojím karieru nesetkal s tím, že by nějaký mirror update, něco rozbil, tak jako rozbil, to, že dobře byl tam nějaký mirror update, který rozbil aktualizace, ale že by rozbil něco z funkčnosti toho WordPressu, jak se mi nikdy nestalo. Tak, samozřejmě, ne musíte s tím soulasit, já jsem prostě pro to, aby ta aplikace si tak nějak žila životem, aby prostě sama se, sama se updateovala, pokud je to možný, abych ten patchmina se za nejco nejdřív. Více mémě bych to předrovnal k tomu, že vlastně, když provoze nějaký web, tak když běží na tom serveru a váš administrator tam, aktualizo nějaký balíček, tak většinou systémové, hloupé, někde hluboko, tak taky ne pouštíte hned integrační testy, jestli na hrů nová manuálová stránka vám ne rozbila, ne rozbila systém. Samozřejmě, správně je to dělat, ale ne všichni, jako na to mají, jakoby proces tak zvládnuté, aby asi tohle mohli dovolit. Tak. Mám ty infrastruktur de serveru, protože si myslím, že i vývojár, kdyby mělo trošku vět, kde si fungujou a kde jsou úzké hradla, a tak. Tak. Základ je prostě, že máte jeden server, jedno virtuální, nebo fyzické a teď vám to, jak funguje. Problem je v tom, že když to máte na jednom serveru a táplikace, že by náročnější, tak máte omezený počes druh, a začne se vám databáze opamněň. Čiže každý PHP script má nějakou svůj memory limit, když máte gigový server a nastavíte memory limit na 256 mega, tak prakticky můžete pustit dom čtyry procesy PHP, pak dojde paměť. Jšte máte databáze u toho, tak je databáze taky nastavená, že může se sebrat z toho serveru nějakou ramku. Takže můžete nastavit, že databázec si může vzít pul giga, a když máte memory limit na PHP 256, tak to znamená, že vám může ubiť, že ten maximální dva procesy už strašně málo. Proto je lepší mít databázový server ekstra, že si máte databázový server a tom přesně nastavíte, že může využí veškerou dostupnou ramku, co tam je. Faknu to pomůže. Samože nebíhoda je, tak vám to zdrží. Ale ve všechno ostatní případky, když se to využíte, a aplikaci, která je do přeskálovatelná a odolná, tak je dobrý mít databázový server ekstra. A když už začnete kupovat i servory, tak pak si koupíte nějaký další na storage, protože tenhle server by mělo by jako silné výkonostně, ale disky začnou byť trahí, a výkoný server když diska bude trahí, tak si koupíte nějaký slapší server, který má velký storage, kde to budete ukládat. Pak kala řeknete, už se měny, ktele bych to nějak geolokovat, takže bych ty všechny jsou budem někde v koudu synchronizovaný. No, a pak jako by ta vaše aplikace ač neby je těžká, že nakupí další server a budete lódbalancovat, aby prostě, který už vám nebude stačený webový server, taky budete mít víc. A takhle to prostě zlustá, a pak si řeknete, že všechno budete mít dva krát. Takže se to docela prodražíš, chcete provozovat takový high availability vysokse dostupnej blogísek, ale říkám, důlžitý je znát, jakoby ty hradla, co je problém, co je dobrý prostě, kdy oddělit. Takže říkám, když vám přesta nedochází, když začne být málo ramky, tak prostě rozděli databázevý server, když vám přesor nedostačovat, tak prostě pořidíte nějaký load balancer, samozřežíš se třeba v Amazonu, v cloudu, tak tam na všechno jsou za těžký dolar, jsou službičky, který to všechno zvládnutí. No, takže tímhle si nespůsobeme dobrý přemejšlet. Tak, pak záleží samozřejmě na samotným web setvu, který použdíváte. Míceme i neská jsou nejpouživanější Apache Engine X, a hodně se prosozová neská Lightspeed, s tím, že prakticky všechny hostingy maj Apache, ty lidi, co si to dělájí sami tak většinou použet Engine X, a komerční velký hostingy většinou zahraniční, jak použet Lightspeed, liší si to v tom, že ten Engine X je mnohem výkonější, než Apache v základním nastavení, a akurat neumí hetalces, což jako spousty klientů z nějakého pro mě nepochopitelného důvodu vyžaduje. Je také více méně výkonné jako Engine X, ale umí emulovat letáces. Tak, použát tady někdo Engine X, 1, 2, 3, 4, dobrý, dost. Tak tady na GitHubu, já mám proukásku svoj nějakou konfiguraci, jak by měl by na konfigurat Engine X pro WordPress. Jo mám tam prostě bezpešnostní věci, výkonostní věci, hlavičky, takže klientně se z to inspirujte, na to, když tak můžeme kouknout, když zběhne čas, co tam všechno, jakoby řeším. Tak, proč já pač po malej? A pač je v základu po malej, protože má hetalces. Hetalces spomětně z působem, když máte takového cestu, tak apač po 3 sloučí všechny tý konfigura se z hetalcesu po celý cestě, takže muset táhle, není tady hetalces, když je, tak si to připraví, aby to pak dále, jakoby sloušil. A tady, a tady, a tady, máte apač z hetalcesem, to je ta direktiva Hello All Right, tak on musí pro ji všechny cesty, k tomu poslední sloučka kouká, jestli tam není hetalces, všechny hetalcesi na susat, a pak z toho skompilovat ty výsledný pravidla, což je docela pomalé. Jo, až je samozřejmě do rutovské sloučky. Tak, když apače vyhodíte, k tomu není proces management na event, tak více moje dostahne do spodobního výkonu s apačem, jako je ten NGNX, ale připravíte se od ty hlavní věci, proč lidi apač používají. Takže už je lepší prostě pro mě použít NGNX než jakoby z hodiny si hrác s apačem. Tak, to už jsme se o tom bavili, ten vlastní server, jediná výmka je teda, když nemáte ten web optimalizovaný, takže prostě ho dělá, nevím, stovky. Zpěl jsem se s webama, který dělá 2.000 dotazů do databáze, protože to byly zastekladný plug-inama, tak jak byste to rozkálovali, že ten web se no, ten databázoj se dáte na jiný, tak získáte prostě, nejde se v teřin, to by jenom dělat 10-20.000 dotazů. Tak, co dál? Jo, když a deně na různých forech a tak, když prostě nikdo řeší problém s výkonem, tak většinu jsem najde někdo, kdo mu řekne, ale tak zvyš memory limit. Memory limit se zvyšuje pro případ, pouze, že prostě ta vaše aplikace tak strašně nenážraná, že prostě ten normalní jako by nestačí. A říkám, pamětě dost takoby drahá věc, když to tak vezme, a protože v normální webostingy nechtěji vám prostě třeba zvyšovat víc, než třeba 128 dáte, protože je to fakt, když máte, jak jsem říkal, když máte gigo-way server s gigem RAM, KWPS-ko, tak když máte memory limit 128, tak víc mám říkáte, že tam může by, že maximálně 8 PHP procesů na jednou, což je strašně málo. Takže já si myslím, že říkám, já většinu, když pouštím weby, tak mám 64, protože si nemysím, že by mělo být víc, tak je to fakt špatně něco tam jezle. A důvod často, protože se to zvyšuje, tak je to, že se spracovává nějaký, jako v té příklad, kde je potřeba hodně RAMky, když spracováváte nějaký velikánský feed, nějaký import něčeho, nebo něco podobnýho, tak potřeba jít rámky hodně. Ale v tom případě je mnohem lepší, než to pouští normálně, skrz jádro normálně přes nějakou adresu, tak pouští si to spracovává to feedu z celíčka, kde už si tu větší RAMky můžete bez problému nastavit. Tak, hledu vám, že tohlen co malinkou objasnilo memory limit. Teď bych tady chtěl probradit pár takových věcí, co má WordPress, jako v základu nějakým způsobem vyřešený, ale je to vyřešet líb. První je mailing. WordPress sám počít dál s tím, mům používá funkci vopomel, aby se byste nemusel nic nastavovat, byl někdo na mojí raní před nášce. Tak bych měl říkal, tam jsem právě říkal, že občas je problém z doručídelností e-mailů, protože, když jste na zdílém hostingu, tak po to jednou IP adresu byží dalších třát věstě webů, a pokud nějaké z nich byl napadenej, třeba zašel rozesílat nějaký podivný e-maily, tak se ostane na blacklist, tak mi se ostane, tak je IP adresa zabanovaná, a vám taky přestanou fungovat e-maily. Tak proto byste, když pouštíte nějaký web, tak to dostane nějaký třeba e-mail a tak, tak ten byste měli ideálně použít, jo? Více méně ten kod, proto je dost jednoduché, tak jako WordPress na tomá, třímo počíta je to běte dělat, tak na tomá připravený hook, kde si vlastně nastavíte pár proměnejich PHP-mailerů a má hřešenou a zlepčíte rapidně doručitelnost všich e-mailů. Samhřeš máte v EPS, ale řešíte sami tak, že se od tenhle na blacklisty taky většinu váš problém, takže nemůžete nikolí ní obviněvat. Tak, další věc, co WordPress má a nemá na tou bedopře, tak je Kron. Kron, víte jak ve WordPressu funguje Kron, ten neho základní, ten funguje, takže prostě vám čekáš, budete mi nějakou návševnost a pak tomu nebo žákově, který přijde po prví, tak prostě se tam prostí to je třeba, Kron se použijá, když máte naplánovaný příspěvek, proto se taky stává, že kolikráce příspěvky nepustí, proto je zrovna se neměli žádnou návščenou, se by vám ten Kron fungoval, takže máte blogí se, kam chodí jeden človek za tej den a máte tam připravené jich deset postů na každý den, tak se vám nikdy nepustí, protože tam nikdo zrovno nebyl. Takže proto je lepší ten Kron WordPressu vypnout takový každý normální webboster dneska umožně poště nějaký Kron bude to teda přímo z PHP že přímo pošlete PHP příklad s tom celíčku, to se hodí, když máte Kron třeba na synchronizaci nějaké e-shopu s nějakou jinou na tabází a trvá hodně a potřeba se trvá víc tý rámky nebo prostě přímo zavoláte url adresu svojho webbu lomenu vopelkron.chp tak příklad, když náhoru ten vás když náhoru ten link to nemá tak můžete pořád použít služby typu EasyKron který vlastně periodicky vám budou ten váš web v každým intervallech se potředete tak volat a použď ty Krony tak další věco mi na WordPressu trochu vadí, že v základu nemá také blokace neuspějšných přilášení takže WordPress umoužní vyskoušet milion kombinací v životelských men a Hesel to pro vás tu lenc tu blokací zase můžu vyřešit bezpešnostní plug-iny, ale tevě jednou se zvládnout když máte vlastní server, tak to zvládnout na serveru tím, že asi předefinujete akci že když, když můžete to mám udělat takhle, když prostě se zavolá ActionLogInFail což je ta akce, která vám zobrazí původně tu hlášku tak mi to ještě navíc udělá že mi změní header jako status code na 400 níčků což je neutorizováno a to pak je v logu to se zapíše do logu pak je nástroj Filtuben znáte Filtuben to je serverový nástroj který skou má logy a když to něco se trefí do nějakého do nějakého řetěste, který vy máte tak může províz akci například ozablokovat IP adresu tak se to poměrně jednoduše mám tady zase příklad, jak to přímo do toho Filtubenu je to pořád ten samý repozitá s konfigurací nginxu samozřejmě tyhlenství věci ty extrátaktiv funguovis a pačem všechno takže tenhlen sem pak skou má když se v logu obeví sestyní a vresi tři krát 400 níčka tak tu IP adresu třeba na dvě hodiny zablokuje podobný pravidlo je docela dobrý třeba na 404 když to není nějaký robotel realný útučník, tak první co udělá tak je, že v jásken vašeho webu co tam máte, co tam máte za plug-in aby našel nějaký exploit a to funguje tak, že on prošli kouká i tam tenhlen sem plug-in a on tam většinu není takže to generuje velký můžství 44 takže když třeba se zase zase když jakoby z jedný IP adresy přišlo během minuty 244 tak to asi nějaký skin tak ho zablokuju jo to je feltuben, fakt jakoby super nástroj zkuste si to ještě tak najídyby když máte vlastný server tak, další věd, co se mi na WordPressu nelíbí tak je enumerace uživatelů nicme nad tím hlen s tím když dáte adresu autor se rovná jedná, tak vás to přesměru na stránku u adresy uvidíte uživatelským jenom to uživatele což jednoduchý napoužití pro pro návštěvní pro utočníka, jednou šesi vluste všechny uživatele a pak to zkouší když tohle se zablokujete jen na to zase, jde to vatá cesu jde to v konfiguraci tak pořád nově WordPress má REST API ten jsem si pučil v odkluků z webikonu REST API co vlastně mají záktivní uživatelné na webu tohle jsou adresou, jsem tady zistil že tady nějakej asi Jan Bočínec vykse tyfnul který má tady nějakej webík, má tady uživatelským jenom odpřesto o celém závináče asi tam předlašete bočínec-závináč-webikon.sk budeš, jo Jan Bočínec jo, no to já jsem ze všichný tím asi jen způsobem jednodusě jako útoční může vyzobnout všechny aktivní uživatelné na webu a navíc, ešte sranda je že tady tohlen stoje i e-mail zájšovajne md-5 a md-5 tady sto ten e-mail dostat tak je otázka pár minut protože ke kombinací není tak hodně a většinou to bude asi závináč-webikon.sk nebo ménotí domény zájšovajnáč-g-mail-com takže se mi strašně sníží ta možnost takově těch e-mailů co tam můžou být a tady můžou být jedno můžovatelský písmenka a tečka a čísla tak to se mi taky nelíbí tak tady zase v tom extras tak máme nějaký enhancer který to odstraňuje vypadá to takhle ten kod více méně zase tím jdu si hook kde se připravuje výpistých uživatelů a všechny všechny ty políčtry který tady řeknu a obsahujou ménou uživatele tak je bude odstraňim a nebo místo, když občas někdo má uživatelský ménou jak to říct, uživatelským ménou jedno jako login a jedno jako uživatelským ménou co se zobrazuje když je stejný tak ho změním na autor je tím len s tím zaborání to můtočníkovi vytáhnout si ty uživatele takhle pesteň je fungovat jenom v něm nebudu, když nebudete přilášený ty citlivý informace vaše uživatelským ménou a váš e-mail a případně další věci tak další funkce bezpěšnostních plug-inů worldfence a taks, security taky že prováděj kontrolu na malware, hledaj nějaký signatury ve vašich PHP souborech ukazovali jsme si, že to umí ale tam má práctiskejnou jednu signaturu na base64 i val umí provistrá kontrolu proti těm core souborům z repozitáře ale to není dostatečný ty plug-iny security nebo worldfence tak většinou umožňou ale ještě lepši, ubece ne používal a mít to na serveru na serveru se nám nejvíc osvědčil nástroj mal dead nástroj, který má nějaký své signatury který vžasno musí aktulizovat a nejde, když se něco krávon se může zahukovat tak to porovná okamžitě jestli náhodou, tam neobsahuje nějakej spoměrně hodně široký palety signatur, známych utoků tak vám ukáže může to hodit do karantén nebo vám vás upozorní, ale je tam nějaký podívnej kód koukní na to takže i tak výhle věci co potřebete běžně prostě plug-in takže ježí přes PHP takže je strašně pomalej, strašně řere prostředku taky bude to dělat ze strany servodu strašně nenásilně a jednodoušet tak, další věc hešování WordPress používá pH pH-PASS což je heš založený na MD5 který lep či md5 ale je pořádné dost když jste dělat tě back-ripped a málo se ví, že WordPress sám back-ripped defaultně podporuje jebo, podporuje a stačí prakticky změnit jenom jednu proměnu tady struna false a máte nednou v několik řádu bezpěšnější hešování tady ten kódíček malým kej tak vám zmnoho nás obí z sílu hešu vašich hezel výsem je to lensta hodnota tak je, možním to říkaj tady dělá, tak co jsem se naběh nevím, jak tom říkajš je to, že víc jsme je pro pH-P5 tak jako by tam byla ta implementace back-ripped trošku jiná než pH-P5-6 a vejš jeho přednusitelnost jsou přednusitelné hezla že tady vlastně to trůk když tam default nějaké kompatibilita s pH-P-5-5 a níž což neská už nad ní kdo nemá tak doufám, že máte tak stačí to změjí na false a máte hned bezpešnější hezla tak zase v tom enhanceru tak tam mám přímo nastavení když se vám nelíbí můj emu plugin tak můžete použít plugin zrůc.io, který to dělá a navíc má i tu funkciálnotu že vám takové přehešuje i stávající hezla uživatelů takže když prostě ten web už nějakou dobu běžel tak pořád, když ten uživatel se neprihlásil i stadí prostě nebezpečný hezlo nebo nebezpečný, ne až tak bezpečný hezlo můžete přiláct, aby se to tímhle jen s tím aktivovalo ten plugin tak je přehešuje ve vnitř i když se ten uživatel neprihlásil takhle zálohování dneska už jsem to taky říkal zálohování spoustli lidí se spolíhá na hosting, že mu to prostě vše vyřeší což je strašně fajn ale můžete se stát, že když jste jako v krizi a ten hosting jak jsem v té mnou přednáčce se měl co, když policie zabaví všeho servery tak jako by byl jsem světkem toho, že se to stalo tak jsou i vaše zálohy takže byste si měli občas udělat tu zálu sami aby jste v případě největších krizích když trá ten web host, který se rozběje konektivit a bude tejden to vopravovat takže byste měli mít svojí vlastní zálohu nám se nejvíc osvěčilo zálovaní přes nástroj Restik, který vlastně záloh je do cloudu a zároveň to šifra S256, že ty zálohy i když to prostě dáte do cloudu který mu třeba úplně nevěřité třeba Amazonu, že jo tak níkdo se k tím zálohom nedosným jsou zašifrony vašim klíčem funguje to, dáte Restik backup cestu, křouborům, a on to tam nasipe podle repozitáři vašim zálohovanýmu a pak perfektní věc který jsme na Restik začli používat, takže řeší řeší jak to říct dobu uchovávání záloh takže mám tady tedy tím příkazem řeknu hele ozálohoval jsem to a pak mu řeknu hele, zapomeň všechny zálohy, který jsou nech, jinak, pobrát jsem to řeknu zálohoval jsem jim všetným zálohom to zálohoval jen pak čtyři tejdny dvanáct měsícůle které doky že vícem je takhle mám zálohy, které doky zpětně jenu roční po měsících, po čtych tejdnych a pak každej den zpátky jednu tímlesně jednouchým příkazem je to krasně natáhne to zálohovaně je krasně to vyskě jde a pak se to akorá vyčistí a to kdo má VPS, co zajímal by ho, tak zase máme na to článek, kde jsme to poprsali, jak to nás funguje. Tak, jo, a tady mám zase podobný slajc, jak se měl. Akorát jsem to kousek posunulam, jsem měl nějaký plug-in pro začátečníky, ale to tak nejste. Takže, jakoby, když le dáte ten pomaly plug-in, tak samozřejmě, to VPC alíčko vám pomůže, a když můžete nemáte přístup, jak můžete zkusit query monitor, což je nástroj, který vám ukáže aspoň kolikváš, web děl, databázový dotazů, jaká komponenta ty databázový dotazy jako by pustila, což vás může jako přivízná to, jaký plug-in je špatné, a taky vám ukáže všechny heterotepor dotazy, který byly volaný přes jádrowor presud, což je dobrý, ale není toupe přesný, protože, když je plug-in byl by napsaný, tak si může zavolat nějakým kurlem, si může zavolat, zavolat si prostě tu adresu mimo jádrowor presud, a ten query monitor se to mne dozví. Když to chcete mít mít precizní ten blackfire, a jo, o kterému jsem mluvil, a dobrý je používat i zvládne to xdebug, ale xdebug je spíš pro ten výborný, pro vývojáře, hlavně na krokování kodu, jestli už máte idečko, tak se vám napojíte, můžete prostě rádyk pořádku, je takouka, co je v proměnej chaták, a jakoby vedlejší funkce toho xdebuguje i to, že umí pro výstem profil, že vám to ukáže v nějaký vyzolozovaný polobě, kterou pak můžete zobrazit třeba náspolem webgrind. Tak, jo, tady je pár vy, jako než asi těžkých problémů, co to nalezné, tak jo, tady je ukázka jen to blackfire, můžu pak ukázat nějakou živou. Jo, to jsem na minu přednájící úplne přesně do detelu nevyzvitlil kešování, že řešíte výkon, ta vysky vám se o řík, každý řekne, mám pomalý web a takto řekne, no tak to zakešují, že jo, no ale jak, protože kešování je poměne služitá, služitá záližitosť a má svou stivrstvě jako cibule. Takže na jedný straně máte keš pro hrý řeče, kdy vlastně nasové ty expert zlavičky, aby když, aby když, aby když, aby když, přistoupí na tu stránku znovu, tak aby nemusel všechno stahovat. Tak, pak máte nějakou stránkovou cache, to je oblíbená, vp-supercache, vp-rockit, v3-total cache a tyhle instyt, ty dějají to, že vám vlastně ten výstup, tohoto je služitý scriptu uloží do stativského souboru a ten web server pak se devíruje ten stativský soubor a nemusíš všechno vykonávat znova. Což funguje dobře u jednoduchých webů, ale třeba ještě máte nějaký vukomers, kde máte košík, takže jakoby ta stránka, jakoby prakticky pro každýho uživatele unikátní, tak tyhle nic ty plaginy nemůžete použít. Tak, další typ cache je nějaká opcode cache, to znamená, že vlastně PHP prakticko do vrze 5.6 návsobě opcode caching, takže vlastně ještě se pustí PHP script, jdeme se nějaký způsobem skompiluje, uluží se do rámky, aby znovu, až ho voláte znovu, ten script, tak aby se zase to samý nemusilo znovu proložit, jako přeložit a znovu pustit. Takže to je opcode cache, to je od novéjich verzí už automaticky PHP. Víceme, jak ještě webhoster ale chceš 3 trámků, tak vám ji vypne. Tak, transientin cache, který jsme se bavili, to je to, že si ty datám na chvíli uložíte do databáze, když to výslelek několika dotazů nebo nějakých věcí, jak sáto do databáze. Objektová cache, to je další vrstva, která je strašně mocná, protože to dělá, to muž potřebujete asi potvoru serveru, že tam nějaký redysmem cache nebo apcu nebo něco podobného, a to vlastně, to stady dělat transientin cache, že to uložila do databáze, když to vládá, nechá to v ramce přímo připravené rovnou pro to PHP, to je to brutálně rychlý, a šetří to, která evidentně jako by databázoví dotazy. Takže to je perfektní věc, ale potřebujete podporu na serveru, většinou web hostingi to nemájte, takže na to potřebujete VPSko, další typ keše proxy cache, to je, když jste v nějaký firmě, tak volná firma, většinou chce vám třeba omezit. Omezitka všude můžete, a zároveň, aby užetřila ránou, 10 tisíc, která dnes stahoval blézky, takže to uloží někde u sebe. Chování tělejstvých keších můžete zase o šetři hlavičkama, a pak jel se, pak i disková keš. Disková keš je strašnější kovná věc, protože Linux má takovou vlastnil, že mu prakticky, kolik mu dáte ramky, tak toliký využ je, a využ jí právě třeba pro ty diskový keše, že když má prostě spousty volný ramky, tak vám soubory, ke kterým přistupujete, nenechává, lež na tom disku, ale dájé do ramky. Takže když prostě, máte dostat volný ramky, tak ještě tím zrychlíte práci toho systému, protože má uložené na disku, ale v ramce. Takže když prostě ten server to VPSko vyšťavíte na maksimum na tu ramku, tak už nezbyde místo na tu diskou keš, a volnou budeme se všechno načíta z disku, že tím se spomalí. Takže server, který má vyplitvané jedno gigo ramky, a má jedno gigo ramky, tak bude třeba jedna a půj giga ramky a jedno gigo je zabrany. Tak, tady to mám pobsaný, tady je odkaz do dokumentace dokumentace na ty transient, je to fakt jednoduchý, prakticky to funguje transient set, transient gets, nějakým konstantou, jak dlou, to tam má ležet, je to fakt jednoduchý na použití. Objektová keš, tedy jsou odkazy na dropiny podle toho, co ten vás server podporuje. Jo, když má pro SuperCache to jsem říkal, do, do, do, do, do, jo. A když jsem byl u tě databázou do tazu pro ty transienty, pro ty další věci, takové více méně prezistentní cache ve WordPressu, no prezistentní objektový uložitě tzn. WAPoOptions. Když já třeba, když já mám nějaký plugin, tak já dělám minimum pluginu s nějakým grafickým rozhraním. Já většinou radši asi na definu pro obšny vám, než abych zbytečně prosím dělám nějaký klikátko, který stejně nikdo použejí jednou, a pak už ho nikdy na ní nešáhne. A vlastně, když máte to klikátko, tak vlastně pošlete no, ty, to vlastně nastavení, tak se musí zase dále tím databáze ušetříte databázi do tazy, když říkám, když máte nějakou obšnou, kterou není potřeba často aktulizovat, tak to dejte prostě do těch dovolpokonfigů, jako constantu máte v řešenu. Tak, a to všechno do tazy? Můžu vám, můžu vám, když se tam zkočí, který říkám, ukázat když tam tady mám, tady mám třeba ten můj virtuálek vám tady, když se připoje, měl, tak mám tady krásný command line command line pro ližiči, funguje to, jestli zná ten mcíčko, jedný commander reaguje to prostě luxusně Perfekný věc, můžu s toho poušťet tady cd je to mám cd media vp tak vp, co tam dáme tady můžu s třeba si vyhodu jednou taxonomy, jak se tam ukazoval ty krů, jdám si prompt tak jak se mámenovat, tak to by nejaký list po na poustu bla, bla, bla bla, bla, bla nechci, nechci a chci to jak levy print note a jak se tam to jdá blbě třeba tak se mám něco zapomnil post type třeba nevím, občiny tak tam prompt ježel napíšu správně co teživí vkázky tak nejaký kníha bla, bla, bla label kníhy, nechci konku do tematu do pluginu, ne tak mi to tady vytvořilo rovnou přepsal, vytvořilo mi to a ukážu kde to je content jakým v 20 17 mi to vyrobilo post type, jasný tak mi to vp cedíčko krásně tady vyrobilo sledit ten zdroják, který bych musel předtím vyrábět a ono ten malý týk ten je strašně a nevím jak to zvěčitit ale říkám, vyrobilo to celý zdroják pro ten post type bez toho, že bych musel prostě to, kde dělat indy, takhle to funguje pro ty všechno správně vyplníte a pro další věci se teví veště něco to je pahr jakoby zabalená zabalená sada scriptu v PHP jsou to normálně PHP scripty a poštíš tohle poštíš to z command line