Ahoj, chci se inspirovat, takže
Mám dvě VPS na jednom teď běží nginx a php a na druhém mariadb. Na serveru hostím hlavně wordpress stránky. Uvažuji o přeinstall a lepším nastavení. A proto bych uvítal jakoukoliv inspiraci, jak tohle vyřešit.
Teď se potýkám s problémem, že nějak weby přestávají po aktualizaci php fungovat. Musím pepínat jednotlivé stránky na různé verze php a to asi není úplně správně že. Ale to bych rád vyřešil právě tím novým nastavením.
z toho co jsem vydedukoval, tak bys ty aplikace měl izolovat, takže když budeš aktualizovat jednu jednotku (ať už WP samotný, nebo PHP), tak pokud možno nerozbiješ jinou. Takže já bych to naházel do Dockeru. Tady si dej pozor na oficiální obrazy z Dockeru, pokud budeš potřebovat starý PHP tak raději vlastní image z deb.sury.org nebo Freexian, čas od času tam něco opraví,…
Protože si tam takhle přidáš komplexitu tak, doporučuji nějakou orchestraci,… Třeba Ansible,…
Na NixOSu jde provozovat libovolne PHPcek najednou, pekne v izolaci, aniz by tam musela byt navic kontejnerizace (s dalsi rezii) a rovnou to jaksi je managed konfigurace psana ± deklarativne
@perteus Ahoj, u těch Wordpressů se dřív či později dostaneš jako já do situace, kdy jeden bude potřebovat jiné verze např. PHP 8.1 a některý 8.2 třeba kvůli pluginům nebo šabloně. Máš mnoho cest
já jsem to nejrpve dělal tak, že jsem měl více instalací PHP a běžely mi tam procesy PHP-FPM pro každou verzi. V nginx virtualhost konfiguráku pro konkrétní web (/etc/nginx/sites-available|enabled) jsem si nastavil cestu kam se mají PHP posílat. Pak jsem se ale dostal do fáze, kdy jsem chtěl provozovat apache i nginx najednou pro různé weby/aplikace, takže jsem přešel na Docker kontejnery.
ale logicky nemůže ti běžet na portu 80 nginx i apache, takže potřebuješ proxy. Já používám Traefik, protože se (když to člověk pochopí) dá pak snad v konfiguráku docker-compose.yml dopsat. Umí pracovat i s Let’s encrypt. Proxy ti pak na základě domény odkáže na konkretní docker kontejner, který běží z image Docker - docker-compose.yml je níže.
a databázi MariaDB mám jako samostatný kontejner pro všechny Wordpressy, protože kdybych měl pro každý web vlastní databázový kontejner, tak mi hned dojde RAM na VPS. Vlastní databáze pak řeším jenom u větších projektů. Pro každý web pak vytvořim databázi a vlastního db usera.
Kontejnery pak spravuju přes kontejner portainer.
Vím, že je to možná trochu overkill hned na začátek. Začni s Docker Desktop u sebe na PC, než se do něčeho pustíš.
Overkill ani moc ne… už s tím nějakou zkušenost mám. Na své NAS takhle řeším správu kontejnerů pro app, co mi na ní běží a jako proxy mám npm. Takže teoreticky vím, co asi je potřeba. Takže se nad tím taky zamyslím. Nicméně mám 4 weby a snažím se, aby se dali provozovat na jedné konkrétní verzi. Tedy nemít moc specialních pluginů, nebo nějakou speciální šablonu.
Jo, mám to teď úplně stejně jako Nginx mariadb php - #9 by martinkokes akorát místo Traefiku používám Caddy proxy. Hostname pro weby nastavuju přes labels u kontejnerů a Caddy si automaticky udržuje certifikáty přes LetsEncrypt a jede přes HTTP/3.
Ale na Traefik se taky chystám, protože rozchodit třeba TCP stream proxy přes labels je u Caddy trochu záludnější. Má na to plugin, ale zatím se mi to v dockeru úplně nepovedlo.