Add new comment to Jednoduchý deploy skript nejen pro web v Silexu

návštěvník

ano, rozepsání je jen kvůli orientaci, když k takovému kódu příjdeš po roce, netušíš co dělá a musíš do nápovědy, ale je to marginální.

Hlášení o úpravě webu bych dělal jen u delšího výpadku, v případě rsyncu je i u velkého webu problém na max. pár desítek vteřin, u malého si toho nikdo nevšimne. Deploy bez výpadku je v php plný pastí, vždy podle projektu/frameworku jsem provozoval jiné řešení.

Nejlehčí řešení je rsyncovat projekt někam jinám např. do adresáře podle datumu /var/www/deploy/polzer.cz/$(date +%Y-%m-%d). Získáš s tím zároveň i jednoduchou možnost rollbacku. Máš několik možností:

1. použít symlinky
2. použít symlinky a přes htaccess podvrhnout adresář
3. změnit konfiguraci v apache/nginx a načítat z jiného adresáře

Pasti, na které narazíš:
- php-fpm si zjistí symlinky při startu a poté změny ignoruje, nutný restart/reload
- php opcache si bude pořád pamatovat staré soubory a je nutné jí reloadovat (pozor pro cli a pro web je samostatná)
- různé cache ve frameworcích/aplikacích používají absolutní cesty v filesystému, jako např. Nette, Wordpress. Možnost použít symlinky to trochu komplikuje

Lze provozovat i složitější řešení, přes např. apache vhost si odzkoušet, jestli vůbec nová verze funguje (alespoň, že lze načíst homepage) a poté prohodit s produkční verzí.

Po deseti letech jsem se ale dostal ke clusteru a každý web běží minimálně ve dvou instancí a deploy bez výpadků je tak jednodušší.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů