Jak na to: Debian 10, Virtualmin, PHP 7.4 a HTTP/2
Jak na to: Debian 10, Virtualmin, PHP 7.4 a HTTP/2
Rychlost webovému světu vládne. Pokud jste si pořídili nový virtuální server bez administračního panelu a potřebujete rozběhat web, možná oceníte postup, jak zkombinovat nejnovější PHP, rychlé HTTP/2 a komfortní nástroj pro administraci serveru.
Ve volných chvílích si hraju s možnostmi virtuálního serveru u služby Vultr, který jsem si pořídil na přelomu roku. Na jiných virtuálech používám Debian se správou serveru pomocí nástroje Virtualmin.
A protože na zatížených serverech, kde mi většina webů běží, nechci experimentovat s laděním webů na nejnovější verze technologií, mohl jsem si na levném, ale velice rychlém Vultru otestovat kombinaci Debianu, Virtualminu, nejnovějšího PHP 7.4 nabízejícího určité zrychlení a také HTTP/2.
Právě HTTP/2 mě kvůli optimalizacím rychlosti webu zajímá nejvíce. Aktivovat příslušný modul webového serveru Apache je sice poměrně jednoduché, na příkazovém řádku i přes Virtualmin. Jenže aby opravdu fungovalo, je nutné provést několik úprav výchozí konfigurace.
Následující postup krok za krokem nainstaluje Virtualmin do čistého Debianu a připraví weby na provoz s využitím novějšího komunikačního protokolu, než je klasické http.
Příkazem apt-get update a následným apt-get upgrade vyhledejte a instalujte případné aktualizace systému.
Pomocí wget http://software.virtualmin.com/gpl/scripts/install.sh si stáhněte instalačního průvodce Virtualminu.
Instalaci se spusťte vyvoláním tohoto skriptu: sh install.sh. Na strojích s nižší kapacitou operační paměti doporučuji spustit minimální instalaci bez poštovních serverů. Ostatně, podle mě je lepší mít maily odděleny od webu. Jejich posílání z webu vám samozřejmě bude fungovat nadále, jde jen o poštovní schránky. Minimální instalaci spustíte s přepínačem -m.
Pokud nemáte připravený swapovací oddíl, průvodce instalací Virtualminu vám nabídne jeho vytvoření, čehož využijte.
Zadejte FQDN název serveru, tedy například neco.domena.cz. Následně počkejte na dokončení instalace. Na Vultru to byla otázka pár minut.
Po dokončení instalace přejděte na IP adresu svého serveru následovanou portem :10000 a přihlaste se stejnými údaji jako k SSH.
Přejděte do sekce Webmin > Servers > Apache Webserver a přepněte se na kartu Global configuration. Zde rozklepněte Configurate Apache Modules.
Ujistěte se, že je vypnutý modul mpm_prefork, se kterým není HTTP/2 kompatibilní, a místo něj je zapnutý mpm_event. Měl by to být výchozí stav, na starších instalacích to možná bude obráceně a je to důvod, proč se vám HTTP/2 neaktivuje.
Zapněte také modul http2 a nastavení uložte. Tím by mělo být nastaveno vše potřebné k provozu webu pod HTTP/2.
Na kartě Virtualmin přidejte nový server. Zapněte u něj podporu SSL. V sekci Server Configuration > SSL certificate na kartě Let’s Encrypt požádejte o vystavení bezplatného certifikátu pro provoz HTTP. Bez něj by se vám HTTP/2 neaktivovalo.
Ve složce /home/novyserver/public_html vytvořte soubor index.php se zápisem <?php phpinfo(); Po zadání adresy webu byste měli vidět výpis konfigurace PHP a také můžete ověřit, zda se stránka načetla s využitím HTTP/2. Například s doplňkem pro Chrome.
Pokud byste si vystačili s výchozím PHP 7.3 v Debianu 10, tak jste hotovi. Ale slíbil jsem ještě doplnění novější verze. Použijte následující příkazy pro přidání repozitáře s balíčky pro PHP 7.4: apt -y install lsb-release apt-transport-https ca-certificates
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
apt-get update
Nyní můžete PHP 7.4 nainstalovat: apt-get install php7.4-{fpm,gd,bcmath,bz2,intl,gd,mbstring,mysql,zip}
Seznam modulů PHP si upravte podle potřeby, případně pak doinstalujte další.
Spusťte podporu PHP 7.4 pro Apache pomocí příkazů: a2enmod proxyfcgi setenvif a2enconf php7.4-fpm systemctl reload apache2
Případně zapněte tyto moduly přes výše uvedenou část Virtualminu.
Ve Virtualminu přejděte do editace svého webu a otevřete v něm Server Configuration > PHP Versions. Přepněte původní PHP 7.3.x na PHP 7.4.x a nastavení uložte.
Pokud web s testovacím výpisem konfigurace PHP znovu načtete, už byste měli vidět aktuální PHP 7.4 a aktivní ukazatel podpory protokolu HTTP/2.
Není to tak složité, jak se zdá. Je však potřeba přesně dodržet popsaný postup. Pokud byste nechali aktivní Apache modul mpm_prefork, HTTP/2 by vám nefungovalo.
Druhý bod, kde by to mohlo selhat, je instalace PHP 7.4. Všimněte si, že instaluji pouze PHP 7.4 FPM, nikoli PHP 7.4 samotné. Pokud bych spustil apt-get install php7.4 a balíček se coby modul pro Apache aktivoval, pak by nešla podpora HTTP/2 zapnout, resp. nešel by vypnout modul pro prefork.
Několikrát jsem tento postup opakoval a vždy to dopadlo s očekávaným koncem. Lze jej využít i v případě, že již máte nějakou aktivní instalaci Virtualminu se starším PHP. Vždy je třeba myslet na to, že pro HTTP/2 musíte vypnout prefork a zapnout PHP FPM.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu. Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.
Přidat komentář