PHP je univerzální skriptovací jazyk zaměřený na vývoj webových aplikací. Je to jeden z oblíbených programovacích jazyků pro web. Populární nástroje, jako je WordPress, jsou kódovány pomocí php. Velké společnosti jako Facebook také hojně využívají php.
Nginx je webový server, který lze také použít jako reverzní proxy, vyrovnávání zatížení, poštovní proxy a HTTP cache. Začalo to jako webový server navržený pro maximální výkon a stabilitu. Nginx od svého vydání vzrostl na popularitě díky nízkému využití zdrojů a schopnosti snadno škálovat na minimálním hardwaru. Nginx vyniká v rychlém poskytování statického obsahu a je navržen tak, aby dynamické požadavky předával jinému softwaru, který je pro tyto účely vhodnější.
Související obsah
- Jak nainstalovat Apache PHP 7.4 (LAMP) stack na Rocky Linux/Centos 8
Obsah
- Zajištění aktuálnosti serveru
- Instalace PHP na Debian 11
- Instalace Nginx na Debian 11
- Instalace php-fpm v Debianu 11
- Vytvoření jednoduchého webu a konfigurace virtuálního hostitele
- Testování konfigurace
1. Zajištění aktuálnosti serveru
Než budete pokračovat, je vždy dobré se ujistit, že je server aktuální. K tomu použijte tyto příkazy
sudo apt update
sudo apt upgrade -y
2. Instalace PHP na Debian 11
PHP je k dispozici ve výchozím repozitáři Debianu 11. Nejnovější verze PHP v době psaní tohoto blogu je PHP 7.4.
Nainstalujte PHP a některé běžné balíčky pomocí tohoto příkazu:
sudo apt install -y \
php \
php-common \
php-cli
Zkontrolujte nainstalovanou verzi PHP
$ apt-cache policy php
php:
Installed: 2:7.4+76
Candidate: 2:7.4+76
Version table:
*** 2:7.4+76 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
Zkontrolujte nainstalovanou verzi php pomocí tohoto příkazu:
$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
3. Instalace Nginx na Debian 11
K poskytování obsahu PHP použijeme Nginx. Nginx jako stabilní vysoce výkonný webový server s velmi nízkou spotřebou zdrojů se perfektně hodí pro PHP-FPM. Nginx má asynchronní architekturu, která je mnohem škálovatelnější na základě událostí.
Nginx je k dispozici ve výchozím repozitáři Debianu 11. Nainstalujte jej pomocí tohoto příkazu:
sudo apt install -y nginx
Potvrďte nainstalovaný nginx
$ apt-cache policy nginx
nginx:
Installed: 1.18.0-6.1
Candidate: 1.18.0-6.1
Version table:
*** 1.18.0-6.1 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
4. Instalace PHP FPM v Debianu 11
PHP-FPM (zkratka pro FastCGI Process Manager) je velmi oblíbená alternativní implementace FastCGI PHP (Hypertext Processor). PHP-FPM je nejoblíbenější alternativní implementací PHP FastCGI. Má další funkce, které jsou opravdu užitečné pro weby s vysokou návštěvností. Při použití Nginx s PHP-FPM se zlepší výkon na úrovni spotřeby paměti.
Při použití PHP-FPM běží PHP jako samostatná služba. Při použití této verze PHP jako jazykového tlumočníka jsou požadavky zpracovávány přes TCP/IP soket; takže webový server Nginx zpracovává pouze požadavky HTTP a PHP-FPM interpretuje kód PHP. Skutečnost, že máme dvě samostatné služby, je klíčem ke zvýšení efektivity.
Nainstalujte php-fpm pomocí tohoto příkazu:
sudo apt install -y php-fpm
Služba bude standardně spuštěna. Zkontrolujte jeho stav pomocí tohoto příkazu:
$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-12-11 12:39:08 UTC; 58s ago
Docs: man:php-fpm7.4(8)
Process: 1597314 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
Main PID: 1597311 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4626)
Memory: 9.2M
CPU: 48ms
CGroup: /system.slice/php7.4-fpm.service
├─1597311 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
├─1597312 php-fpm: pool www
└─1597313 php-fpm: pool www
Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
5. Vytvoření jednoduchého webu a konfigurace virtuálního hostitele
Nginx vám umožňuje obsluhovat více webů pomocí virtuálních hostitelů. Koncept virtuálních hostitelů umožňuje více než jeden web na jednom systému nebo webovém serveru. Servery se rozlišují podle názvu hostitele. Návštěvníci webu jsou směrováni podle názvu hostitele nebo adresy IP na správný virtuální hostitel. Virtuální hosting umožňuje společnostem sdílejícím jeden server, z nichž každý má své vlastní názvy domén.
V tomto příkladu použijeme doménu site1.citizix.com pro virtuálního hostitele, ale můžeme volně používat doménu dle vašeho výběru. Upozorňujeme, že DNS pro doménu, která se má použít, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru. Potvrďte to pomocí:
dig -t A site1.citizix.com
Vytvoření adresáře a přidání ukázkového obsahu
Výchozí stránka nginx je nakonfigurována jako výchozí virtuální hostitel poskytující obsah z /var/www/html. Je osvědčeným postupem vytvořit adresář vašeho webu v adresáři /var/www, protože je osvědčeným postupem poskytovat odtud.
Vytvořte adresář pro naše stránky pomocí následujícího příkazu:
sudo mkdir /var/www/site1.citizix.com
Vytvořme jednoduchý index.php
stránku, která má sloužit z našeho webu. Aby to fungovalo, budete potřebovat nainstalovaný vim, pokud nepoužijete tento příkaz:
sudo apt install -y vim
Upravte soubor:
sudo vim /var/www/site1.citizix.com/index.php
Přidejte obsah do souboru:
<?php phpinfo(); ?>
Vytvoření virtuálního hostitele (bloky serveru)
Bloky serveru Nginx lze použít k zapouzdření podrobností o konfiguraci a hostování více než jedné domény na jednom serveru. Chystáme se vytvořit virtuálního hostitele pro naše stránky (site1.citizix.com).
Konfigurace virtuálních hostitelů Nginx jsou uloženy v adresáři /etc/nginx/conf.d/
. Pojďme vytvořit konfiguraci pro náš web:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Přidejte následující obsah
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /var/www/site1.citizix.com;
index index.php;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Restartujme službu nginx a php-fpm, aby se konfigurace uplatnila
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
6. Testování konfigurace
Chcete-li otestovat konfiguraci, otevřete prohlížeč a načtěte doménu, kterou jste nastavili. V mém případě je to http://site1.citizix.com. Měli byste vidět informační stránku php.
Pokud jste ještě nenakonfigurovali nastavení DNS nebo jednoduše nechcete, aby byl web ještě spuštěn, můžete upravit soubor hostitelů svého počítače. Chcete-li to provést, použijte následující příkaz v CLI místního počítače
sudo vim /etc/hosts
Poté přidejte IP adresu vašeho skutečného serveru následovanou názvem domény, kterou konfigurujete, například:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Nyní byste měli být schopni uložit soubor a přistupovat k němu z webového prohlížeče.
Závěr
Virtuální hostitelé Nginx nebo server
bloky jsou skvělým způsobem, jak přidat další webové stránky na stejný původní server. Počet konfiguračních možností pro daný web je téměř nekonečný, když začnete upravovat konfigurační soubor virtuálního hostitele tak, aby vyhovoval vašim specifickým potřebám vašeho webu.
V této příručce jsme se naučili, jak nastavit virtuálního hostitele pro poskytování obsahu php v Debianu 11.