4. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
WP-CLI
• wp-cli doctor (třeba doinstalovat)
• wp-cli profile (třeba doinstalovat)
• wp-cli search-replace
• wp db size --tables
• wp plugin status
• wp db query "SELECT * FROM wp_options"
• wp revisions clean
28. 4. 2018 4
5. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
WP-CLI doctor
wp doctor list
+----------------------------+--------------------------------------------------------------------------------+
| name | description |
+----------------------------+--------------------------------------------------------------------------------+
| autoload-options-size | Warns when autoloaded options size exceeds threshold of 900 kb. |
| constant-savequeries-falsy | Confirms expected state of the SAVEQUERIES constant. |
| constant-wp-debug-falsy | Confirms expected state of the WP_DEBUG constant. |
| core-update | Errors when new WordPress minor release is available; warns for major release. |
| core-verify-checksums | Verifies WordPress files against published checksums; errors on failure. |
| cron-count | Errors when there's an excess of 50 total cron jobs registered. |
| cron-duplicates | Errors when there's an excess of 10 duplicate cron jobs registered. |
| file-eval | Checks files on the filesystem for regex pattern `eval(.*base64_decode(.*`. |
| option-blog-public | Confirms the expected value of the 'blog_public' option. |
| plugin-active-count | Warns when there are greater than 80 plugins activated. |
| plugin-deactivated | Warns when greater than 40% of plugins are deactivated. |
| plugin-update | Warns when there are plugin updates available. |
| theme-update | Warns when there are theme updates available. |
| cache-flush | Detects the number of occurrences of the `wp_cache_flush()` function. |
| php-in-upload | Warns when a PHP file is present in the Uploads folder. |
| language-update | Warns when there are language updates available. |
+----------------------------+--------------------------------------------------------------------------------+
28. 4. 2018 5
10. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Na infrastruktuře záleží
28. 4. 2018 10
3 komponenty – HTTP server, DB server a Zdroje dat
Každá má úplně jiné nároky…
DB
Storage
WEBLOADBALANCER
Cloud
× 2
12. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Kde je .htaccess?
28. 4. 2018 12
/wp-content/uploads/revslider/classicslider/bike.jpg
Heleď,
nemáš tu
.htaccess?
A co
tady?A tady?
A nebo
tady?
A tady už
určitě
bude!
Bez .htaccess s mpm_event je Apache téměř srovnatelný s Nginx
13. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Vlastní server pro DB?
• ANO!!! (ale záleží na počtu dotazů)
• Škálování
28. 4. 2018 13
14. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Memory_limit
• 128MB by mělo stačit každému
• Zpracování feedů spouštět z CLI
28. 4. 2018 14
23. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Hľadanie pomalého pluginu / šablóny
• Query Monitor
• Blackfire.io
• Xdebug (především pro krokování z IDE) + WebGrind
• Nejčastější problémy:
– Mnoho dotazů do DB (nemělo by jich být více než 35)
– Komunikace s externími službami (např. špatně udělaná kontrola
dostupnosti update) - častý problém prémiových šablon a
pluginů
– „Zacyklené“ shortkódy
28. 4. 2018 23
26. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Cachovánie
28. 4. 2018 26
• Disková cache – Linux využívá volnou RAM pro
rychlejší přístup k souborům = je dobré mít hodně RAM
• OP code cache – PHP do RAM ukládá zpracovaný PHP
kód (PHP 5.6+, starší s rozšířením)
• Transientní cache – při použití WP ukládá výsledky
složitých operací do DB
(https://codex.wordpress.org/Transients_API)
• Objektová cache – ukládá výsledky složitých operací do
jiného úložiště – lze použít jako úložiště pro transienty
– je třeba podpora serveru a drop-in do WP
(Memcache, Redis, Xcache, APCu)
27. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Cachovánie
28. 4. 2018 27
• Stránková cache – uloží výsledek pracování
skriptu do statického souboru – např. WP
SuperCache, W3 Total Cache, WP-Rocket
• Proxy – reverzní na straně serveru/„dopředná“ na
straně lokální sítě – ukládá statický soubor aby se
nemusel znova stahovat/generovat (varnish,
nginx microcache/squid)
• Cache prohlížeče – řídí se expires hlavičkami,
pokud nejsou, snaží se je odvodit (většinou podle
stáří souboru)
28. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Konstanty vs UI
• Potřebuje můj plugin uživatelské rozhraní?
• Rozhraní = ukládání do wp_options
28. 4. 2018 28
29. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 29
aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní
A to je vše, přátelé.
Reklamní vsuvka:
Děláte s PPC? Sledujte https://twitter.com/PPCrobot
Děláte v Pythonu? PPC Robot hledá vývojáře ;-)
Hinweis der Redaktion
$id = 1;
$wpdb->prepare("SELECT * FROM {$wpdb->posts} WHERE ID=%d",$id);