Apache je bezplatný, open-source a nejrozšířenější webový server, především proto, že je schopen pracovat v různých prostředích. Apache má schopnost spravovat různé procesy pro obsluhu požadavku protokolu HTTP, včetně zpracování požadavku, otevření soketu a zpracování nových událostí.
Tyto úlohy provádí Apache Multi-Processing Module (MPM).
Apache MPM (Multi-Processing Modules) jsou moduly Apache používané pro vytváření podřízených procesů v Apache. Umožňují obsluhovat více požadavků současně tím, že předávají část zpracování na posluchačská vlákna, čímž uvolňují pracovní vlákna pro obsluhu nových požadavků. Použití PHP-FPM s událostí MPM na webovém serveru Apache zkracuje dobu načítání webové stránky a umožňuje webovému serveru zpracovat více souběžných připojení.
V tomto tutoriálu se naučíme, jak nakonfigurovat Apache pomocí MPM Event a PHP-FPM na Ubuntu 20.04.
Předpoklady
- Nové Ubuntu 20.04 VPS na cloudové platformě Atlantic.Net
- Heslo uživatele root nakonfigurované na vašem serveru
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 20.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 20.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace serveru LAMP
Nejprve nainstalujte webový server Apache, MariaDB a PHP pomocí následujícího příkazu:
apt-get install apache2 mariadb-server php7.4 libapache2-mod-php7.4 -y
Jakmile je server LAMP nainstalován, můžete přejít k dalšímu kroku.
Krok 3 – Změna modulu pro vícenásobné zpracování
Než začnete, budete muset přepnout MPM z pre-fork na událost a odstranit spojení modulu php7.4 mezi PHP a Apache.
Nejprve zastavte službu Apache a deaktivujte modul php7.4 následujícím příkazem:
systemctl stop apache2 a2dismod php7.4
Dále deaktivujte modul Pre-fork MPM následujícím příkazem:
a2dismod mpm_prefork
Dále povolte modul Event MPM pomocí následujícího příkazu:
a2enmod mpm_event
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Krok 4 – Konfigurace Apache pro použití FastCGI Process Manager
V této části nainstalujeme procesor PHP-FPM a moduly proxy, aby Apache mohl komunikovat s PHP.
Nejprve nainstalujte PHP-FPM pomocí následujícího příkazu:
apt-get install php7.4-fpm -y
Po instalaci budete muset nainstalovat knihovnu libapache2-mod-fcgid, abyste mohli komunikovat mezi Apache a PHP.
Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install libapache2-mod-fcgid -y
Po instalaci budete muset povolit modul PHP-FPM, Proxy a FastCGI Proxy na webovém serveru Apache.
Můžete je povolit pomocí následujícího příkazu:
a2enconf php7.4-fpm a2enmod proxy a2enmod proxy_fcgi
Poté restartujte službu Apache, aby se změny projevily:
systemctl restart apache2
Nyní ověřte modul MPM pomocí následujícího příkazu:
apachectl -M | grep 'mpm'
Měli byste získat následující výstup:
mpm_event_module (shared)
Dále ověřte modul Proxy a FastCGI Proxy pomocí následujícího příkazu:
apachectl -M | grep 'proxy'
Měli byste získat následující výstup:
proxy_module (shared) proxy_fcgi_module (shared)
Krok 5 – Ověřte FastCGI Process Manager
V tomto okamžiku je webový server Apache nakonfigurován pro použití FastCGI Process Manager. Je čas ověřit, zda PHP používá FastCGI Process Manager.
Nejprve vytvořte soubor info.php v kořenovém adresáři dokumentu Apache:
nano /var/www/html/info.php
Přidejte následující řádky:
<?php phpinfo(); ?>
Po dokončení uložte a zavřete soubor.
Dále otevřete webový prohlížeč a zadejte adresu URL http://ip-vaseho-serveru/info.php. Měli byste vidět následující obrazovku:
Na výše uvedené stránce byste měli vidět, že webový server Apache používá FPM/FastCGI.
Závěr
Ve výše uvedené příručce jsme se naučili, jak nakonfigurovat Apache pomocí MPM Event a PHP-FPM na Ubuntu 20.04. Nyní bude PHP-FPM zpracovávat kód PHP a zlepšit celkové využití zdrojů. Zkuste to na svém účtu VPS Hosting od Atlantic.Net!