PHP je jedním z nejpoužívanějších programovacích jazyků na straně serveru. Mnoho populárních CMS a frameworků jako WordPress, Magento a Laravel je postaveno v PHP.
V této příručce probereme, jak nainstalovat PHP 7.2, 7.3 nebo 7.4 na CentOS 8. Před výběrem verze PHP k instalaci se ujistěte, že ji vaše aplikace podporují.
Také vám ukážeme, jak integrovat PHP s Nginx a Apache.
Instalace PHP na CentOS 8 #
CentOS 8 je distribuován s PHP 7.2. Tato verze podporuje většinu moderních aplikací PHP, ale od listopadu 2019 již nebude aktivně udržována. Novější verze PHP jsou k dispozici v repozitáři Remi.
Povolení úložiště Remi #
Pokud se chystáte nainstalovat distribuci stabilní PHP verze 7.2, tento krok přeskočte. V opačném případě, pokud chcete nainstalovat PHP 7.3 nebo 7.4, povolte úložiště Remi spuštěním následujícího příkazu jako root nebo uživatel s právy sudo:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Výše uvedený příkaz také povolí úložiště EPEL.
Po dokončení instalace spusťte níže uvedený příkaz, abyste získali seznam všech dostupných verzí PHP:
sudo dnf module list php
Výstup zobrazí seznam všech dostupných modulů, včetně souvisejícího streamu, verze a instalačních profilů.
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Výchozí modul PHP je nastaven na PHP 7.2. Chcete-li nainstalovat novější verzi PHP, povolte příslušnou verzi:
PHP 7.3
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Nyní jste připraveni nainstalovat PHP na váš server CentOS.
Instalovat PHP #
Následující příkaz nainstaluje PHP a některé z nejběžnějších modulů PHP:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
FPM se instaluje jako závislost a používá se jako server FastCGI. Spusťte službu FPM a povolte její automatické spouštění při spouštění:
sudo systemctl enable --now php-fpm
Konfigurace PHP pro práci s Apache #
Pokud na vašem systému běží SELinux, budete muset aktualizovat kontext zabezpečení SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
Pokud používáte webový server Apacheas, restartujte httpd
pomocí následujícího příkazu a můžete začít:
sudo systemctl restart httpd
Konfigurace PHP pro práci s Nginx #
Ve výchozím nastavení běží PHP FPM jako uživatel apache
. Abychom předešli problémům s oprávněními, změníme uživatele na nginx
. Chcete-li to provést, upravte žlutě zvýrazněné řádky:
sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf...
user = nginx
...
group = nginx
Ujistěte se, že /var/lib/php
adresář má správné vlastnictví:
chown -R root:nginx /var/lib/php
Po dokončení restartujte službu PHP FPM:
sudo systemctl restart php-fpm
Dále upravte direktivu virtuálního hostitele Nginx a přidejte následující blok umístění, aby Nginx mohl zpracovávat soubory PHP:
server {
# . . . other code
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Aby se nová konfigurace projevila, restartujte službu Nginx:
sudo systemctl restart nginx
Aktualizujte kontext zabezpečení SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www