Apache a Nginx jsou bezplatné, open-source a populární – nejpoužívanější webové servery po celém světě. Apache a Nginx běží na všech operačních systémech založených na Unixu. Apache je známý svou silou, zatímco Nginx je známý svou rychlostí. Nginx se také používá jako reverzní proxy pro HTTP, HTTPS, IMAP, SMTP, POP3 a jako nástroj pro vyrovnávání zatížení.
PHP-FPM (FastCGI Process Manager) je alternativní implementace PHP FastCGI speciálně navržená pro vysoce zatěžované webové stránky. PHP-FPM umožňuje spouštět více verzí PHP současně. PHP-FPM lze spustit jiným způsobem než mod_PHP na webovém serveru. Pokud hledáte hostování vaší webové aplikace s optimálním výkonem, pak je pro vás PHP-FPM tou nejlepší volbou.
V tomto tutoriálu vysvětlíme, jak povolit podporu PHP-FPM na webovém serveru Apache a Nginx na serveru Ubuntu 18.04.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Platný název domény nasměrovaný na vaši IP adresu VPS.
Krok 1 – Vytvořte cloudový server 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 18.04 s alespoň 2 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 na svůj server Ubuntu 18.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 – Povolte podporu PHP-FPM na webovém serveru Apache
V této části se naučíme, jak nainstalovat a povolit podporu PHP-FPM na webovém serveru Apache.
Nainstalujte Apache a PHP-FPM
Nejprve nainstalujte Apache a PHP-FPM spuštěním následujícího příkazu:
apt-get install apache2 libapache2-mod-php libapache2-mod-fcgid php php-fpm php-cli -y
Jakmile jsou všechny balíčky nainstalovány, spusťte Apache a službu PHP-FPM následujícím příkazem:
systemctl start apache2 systemctl start php7.2-fpm
Konfigurace Apache s podporou PHP-FPM
Dále budete muset nakonfigurovat webový server Apache s podporou PHP-FPM. Chcete-li tak učinit, vytvořte nový konfigurační soubor virtuálního hostitele Apache:
nano /etc/apache2/sites-available/example.com.conf
Přidejte následující řádky:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/ DirectoryIndex info.php ServerName example.com <Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> <FilesMatch \.php$> # 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/example.com_error.log CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined </VirtualHost>
Uložte a zavřete soubor. Poté povolte konfigurační soubor virtuálního hostitele pomocí následujícího příkazu:
a2ensite example.com
Dále budete muset povolit několik modulů pro apache2 pro práci s PHP-FPM:
a2enmod actions fcgid alias proxy_fcgi
Dále restartujte službu Apache pomocí následujícího příkazu:
systemctl restart apache2
Krok 3 – Otestujte webový server Apache
Webový server Apache je nyní nakonfigurován s podporou PHP-FPM. Je čas otestovat, zda je PHP-FPM načteno s webovým serverem Apache nebo ne.
Chcete-li to otestovat, vytvořte ukázkový 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(); ?>
Uložte a zavřete soubor a poté změňte vlastnictví souboru info.php na www-data:
chown www-data:www-data /var/www/html/info.php
Dále otevřete webový prohlížeč a zadejte adresu URL http://example.com . Měli byste vidět následující stránku:
Výše uvedená stránka ukazuje, že PHP-FPM je načteno s webovým serverem Apache.
Poznámka: Po testování nezapomeňte soubor info.php odstranit.
Krok 4 – Povolte podporu PHP-FPM na webovém serveru Nginx
V této části se naučíme, jak nainstalovat a povolit podporu PHP-FPM na webovém serveru Nginx.
Krok 5 – Nainstalujte Nginx a PHP-FPM
Nejprve nainstalujte Nginx a PHP-FPM spuštěním následujícího příkazu:
apt-get install nginx php php-fpm php-cli -y
Jakmile jsou všechny balíčky nainstalovány, spusťte Nginx a službu PHP-FPM pomocí následujícího příkazu:
systemctl start nginx systemctl start php7.2-fpm
Krok 6 – Konfigurace Nginx s podporou PHP-FPM
Dále budete muset nakonfigurovat webový server Nginx s podporou PHP-FPM. Chcete-li tak učinit, vytvořte nový konfigurační soubor virtuálního hostitele Nginx:
nano /etc/nginx/sites-available/example.com.conf
Přidejte následující řádky:
server { listen 80; root /var/www/html/; index info.php; server_name example.com; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; fastcgi_connect_timeout 600; fastcgi_send_timeout 600; fastcgi_read_timeout 600; } location / { try_files $uri $uri/ =404; } } Save and close the file. Then, enable the Nginx virtual host with the following command:
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Dále restartujte Nginx a službu PHP-FPM, abyste použili změny konfigurace:
systemctl restart nginx systemctl restart php7.2-fpm
Krok 7 – Otestujte webový server Nginx
Webový server Nginx je nyní nakonfigurován s podporou PHP-FPM. Je čas otestovat, zda je PHP-FPM načteno s webovým serverem Nginx nebo ne.
Chcete-li to otestovat, vytvořte ukázkový soubor info.php v kořenovém adresáři dokumentu Nginx:
nano /var/www/html/info.php
Přidejte následující řádky:
<?php phpinfo(); ?>
Uložte a zavřete soubor a poté změňte vlastnictví souboru info.php na www-data:
chown www-data:www-data /var/www/html/info.php
Dále otevřete webový prohlížeč a zadejte adresu URL http://example.com . Měli byste vidět následující stránku:
Výše uvedená stránka ukazuje, že PHP-FPM je načteno s webovým serverem Nginx.
Poznámka: Po testování nezapomeňte soubor info.php odstranit.
Závěr
Gratulujeme! Úspěšně jste nakonfigurovali webový server Nginx a Apache s podporou PHP-FPM. Doufám, že nyní máte dostatek znalostí, abyste mohli používat PHP-FPM ke spouštění více verzí PHP současně. Chcete-li začít s PHP-FPM na Apache a Nginx, zaregistrujte se ještě dnes k plánu hostování VPS s Atlantic.Net.