Debian 9 dodávaný s PHP verze 7.0 brzy dosáhne konce životnosti kvůli podpoře a již nebude dostávat aktualizace zabezpečení.
V tomto tutoriálu vás provedeme kroky pro instalaci PHP 7.2 na server Debian 9. Také vám ukážeme, jak nakonfigurovat Apache a Nginx pro spuštění PHP.
Předpoklady #
Než začnete s tímto tutoriálem, ujistěte se, že jste přihlášeni jako uživatel s právy sudo.
Instalace PHP 7.2 na Debian 9 #
Následující kroky popisují, jak nainstalovat PHP 7.2 pomocí repozitáře Ondrej Sury.
-
Nejprve aktualizujte
apt
seznam balíčků a nainstalujte si závislosti potřebné k přidání nového úložiště přes HTTPS:sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
-
Začněte importem klíče GPG úložiště pomocí následujícího příkazu curl:
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo apt-key add -
Přidejte ondrejovo úložiště do seznamu softwarových úložišť vašeho systému zadáním:
sudo add-apt-repository "deb https://packages.sury.org/php/ $(lsb_release -cs) main"
-
Nyní, když máme v našem systému povoleno ondrejovo úložiště, můžeme nainstalovat PHP zadáním verze, kterou chceme používat:
sudo apt update
sudo apt install php7.2-common php7.2-cli
-
Ověřte instalaci spuštěním následujícího příkazu, který vytiskne verzi PHP.
php -v
PHP 7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56 (cli) (built: Jul 25 2018 12:43:00) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56, Copyright (c) 1999-2018, by Zend Technologies
Konfigurace Apache pro spuštění PHP #
Pokud k instalaci PHP a modulu Apache PHP používáte webový server Apacheas, spusťte následující příkaz:
sudo apt install php7.2 libapache2-mod-php
Jakmile jsou balíčky nainstalovány pro aktivaci modulu php7.2, restartujte službu Apache:
sudo systemctl restart apache2
Konfigurace Nginx pro spuštění PHP #
Na rozdíl od Apache nemá Nginx vestavěnou podporu pro zpracování souborů PHP, takže musíme nainstalovat samostatnou aplikaci, jako je PHP FPM („fastCGI process manager“), která bude pracovat se soubory PHP.
Chcete-li nainstalovat balíčky PHP a PHP FPM, spusťte následující příkaz:
sudo apt install php7.2-fpm
Jakmile jsou balíčky nainstalovány, služba PHP FPM se automaticky spustí. Stav služby můžete zkontrolovat pomocí:
systemctl status php7.2-fpm
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-08-30 21:06:53 UTC; 1min 4s ago
Docs: man:php-fpm7.2(8)
Main PID: 16791 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.2-fpm.service
├─16791 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─16792 php-fpm: pool www
└─16793 php-fpm: pool www
Nyní můžete upravit blok serveru Nginx vaší domény a přidat následující řádky, aby Nginx mohl zpracovávat soubory PHP:
server {
# . . . other code
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
Restartujte služby Nginx, aby se nová konfigurace projevila:
sudo systemctl restart nginx
Instalace rozšíření PHP #
Základní funkčnost PHP můžeme rozšířit instalací dalších rozšíření. Rozšíření PHP jsou k dispozici jako balíčky a lze je snadno nainstalovat pomocí:
sudo apt install php-[extname]
Pokud například chcete nainstalovat rozšíření MySQL a GD PHP, měli byste spustit následující příkaz:
sudo apt install php7.2-mysql php7.2-gd
Po instalaci nového rozšíření PHP nezapomeňte restartovat Apache nebo službu PHP FPM, v závislosti na vašem nastavení.
Testování zpracování PHP #
Chcete-li otestovat, zda je váš webový server správně nakonfigurován pro zpracování PHP, vytvořte nový soubor s názvem info.php uvnitř /var/www/html
adresář s následujícím kódem:
<?php
phpinfo();
Uložte soubor, otevřete prohlížeč a navštivte http://your_server_ip/info.php
phpinfo
funkce vytiskne informace o vaší konfiguraci PHP, jak je znázorněno na obrázku níže: