Nginx mariadb php

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.

Ahoj,

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,…

Nad Dockerem jsem uvažoval. Ale je to takové, že si s ním hraju doma na NAS, ale úplně nevím jak to řešit tady na webu. Moje představa byla.

Docker
– NGINX
— PHP
— MySQL

wordpress samostatně

Přemýšlím, jestli mít na DB speciální VPS nebo to mít všechno na jednom stroji.

Líbil se mi koncept : Devilbox: Reviews, Features, Pricing & Download | AlternativeTo

Ale jestli se nepletu ten se nedoporučuje na produkci, ale jen na development.

A jak jsem napsal v úvodu… jsem fakt hodně velký amater v tomhle :slight_smile:

Tuším co jsi napsal, ale reálně s tím zkušenost nemám. Uvítám právě odkaz na cokoliv z čeho se mohu inspirovat.

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 :slight_smile:

1 Like

díky… trochu španělská vesnice, ale tak aspoň se o dlouhých zimních večerech nebudu nudit :slight_smile:

kdyztak je tu chat, pokud nejsi na IRC, pokusim se pomoct, co to pujde, kdyz pujdes cestou NixOSu :slight_smile:

2 Likes

Tohle vypada jako solidni postup, co staci obslehnout, pokud se vice verzi PHP tyce:

2 Likes

díky podívám se na to

@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

  1. 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.

  2. 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íš.

2 Likes

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.

1 Like

Paráda. Nginx Proxy Manager jsme taky používali ještě před Traefikem :slight_smile:

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.