Blog Vaška Ambrože

osobní a duchovní rozvoj, informační technologie a všechno ostatní

Instalace webového serveru (Debian, Apache, FPM, PHP, MariaDB)

V tomto příspěvku bych chtěl dát ucelený návod, jak si na vašem PC či serveru nainstalovat jednoduše webový server v operačním systému Debian GNU/Linux, kde poběží webový server Apache, PHP (Hypertext Preprocessor), FPM (FastCGI Process Manager) a databázový server MariaDB (fork MySQL).

Proč (ne)zvolit FPM?

Varianta FPM je dle mého názoru jedna z nejvhodnějších variant pro menší webové servery. V systémovém výpisu procesů lze snadno identifikovat procesy jednotlivých domén, jednoduše se u nich mění verze PHP i další nastavení. Zkrátka to bez většího úsilí přináší spoustu praktických výhod.

U větších serverů pak již pravděpodobně dává větší smysl zvolit (Fast)CGI, kdy v různých konfiguracích procesů v rámci FPM by mohlo docházet k daleko větší spotřebě prostředků serveru, případně jeho přetěžování. Vždy ale záleží na konkrétní konfiguraci a co přesně je na serveru provozováno za služby.

Provozovat server jen s Apache modulem mod_php dává smysl pravděpodobně asi jen u nějakého Docker kontejneru či podobné služby, ale pro běžný webový server mi to smysl nedává.

Nastavení repozitářů

Jako první si na serveru nadefinujeme repozitáře, odkud budeme jednotlivé balíky instalovat. V tomto návodu budu vycházet z verze Debianu bookworm a pro PHP budu používat ještě repozitáře Ondřeje Surého, kdy ve stabilní verzi Debianu nejsou dostupné novější a třeba ani starší verze PHP, mezi kterými chci mít možnost přepínat. V příkazech to může vypadat nějak takto:

Instalace základních balíků

Jako další krok nainstalujeme všechny potřebné balíky pro Apache, PHP (verze 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2 a 8.3), FPM a MariaDB. Uděláme to tak, že si vytvoříme soubor se seznamem balíků a ten pak předhodíme programu apt:

Nastavení PHP modulů a konfigurace

Nyní začneme s konfigurací PHP a to konkrétně tím, že povolíme jednotlivé moduly a konfiguraci:

Nastavení suexec

Jelikož uživatele webu budeme v dalším postupu používat, tak si jej můžeme vytvořit a rovnou jej zahrnout do nastavení suexecu ve virtualhostu. Uživatele vytvoříme jednoduše např. takto:

Do konfigurace virtualhosta pak můžeme přidat:

Konfigurace poolů

V rámci nastavení FPM si samozřejmě budeme definovat pro každou doménu její pool, kde se dá definovat nastavení uživatele, socketu, individuální nastavení pro danou doménu apod. Nejdříve smažeme nastavení předdefinované v základní instalaci:

Následně již můžeme nastavit pool pro konkrétní doménu a to pro všechny verze PHP, kdy pak bude snadné mezi jednotlivými verzemi přepínat a vše bude již přednastavené. Nejdříve vytvoříme konfigurační soubor pro všechny verze PHP a pak rovnou budeme tyto soubory editovat, např. takto:

Obsah souborů může vypadat nějak takto (5.6-fpm samozřejmě vždy přepíšeme na odpovídající verzi PHP):

Nastavení pro VirtualHost

Jak zahrnout nastavení FPM do konfigurace virtualhosta? Já používám obdobné nastavení jako toto:

Jednoduchý základní virtualhost (který zatím nepočítá se SSL a dalším nastavením, které si můžete uzpůsobit dle svého) by tedy pak mohl vypadat nějak takto:

Spuštění služeb

Až budeme mít vše nastavené, tak samozřejmě stačí všechny služby nastartovat:

Publikováno 19.11. 2023 v 05:55 | Editováno 19.11. 2023 v 16:07 | Kategorie: Debian GNU/Linux

2024
Web od Vaška