PHP est l'un des langages de programmation côté serveur les plus utilisés. De nombreux CMS et frameworks populaires tels que WordPress, Magento et Laravel sont construits en PHP.
Dans ce guide, nous expliquerons comment installer PHP 7.2, 7.3 ou 7.4 sur CentOS 8. Avant de choisir la version de PHP à installer, assurez-vous que vos applications la prennent en charge.
Nous vous montrerons également comment intégrer PHP avec Nginx et Apache.
Installer PHP sur CentOS 8 #
CentOS 8 est distribué avec PHP 7.2. Cette version prend en charge la plupart des applications PHP modernes, mais ne sera plus activement maintenue à partir de novembre 2019. Les nouvelles versions PHP sont disponibles dans le référentiel Remi.
Activer le référentiel Remi #
Si vous allez installer la distribution stable PHP version 7.2, ignorez cette étape. Sinon, si vous souhaitez installer PHP 7.3 ou 7.4, activez le référentiel Remi en exécutant la commande suivante en tant que root ou utilisateur avec les privilèges sudo :
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm La commande ci-dessus activera également le référentiel EPEL.
Une fois l'installation terminée, exécutez la commande ci-dessous pour obtenir une liste de toutes les versions PHP disponibles :
sudo dnf module list php La sortie affichera une liste de tous les modules disponibles, y compris les profils de flux, de version et d'installation associés.
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
Le module PHP par défaut est défini sur PHP 7.2. Pour installer une version plus récente de PHP, activez la version appropriée :
PHP 7.3
sudo dnf module reset phpsudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset phpsudo dnf module enable php:remi-7.4
Vous êtes maintenant prêt à installer PHP sur votre serveur CentOS.
Installer PHP #
La commande suivante installera PHP et certains des modules PHP les plus courants :
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd FPM est installé en tant que dépendance et utilisé en tant que serveur FastCGI. Démarrez le service FPM et activez-le pour qu'il démarre automatiquement au démarrage :
sudo systemctl enable --now php-fpm Configurer PHP pour qu'il fonctionne avec Apache #
Si SELinux est en cours d'exécution sur votre système, vous devrez mettre à jour le contexte de sécurité SELinux :
sudo chcon -Rt httpd_sys_rw_content_t /var/www
Si vous utilisez Apache comme serveur Web, redémarrez le httpd service en utilisant la commande suivante, et vous êtes prêt à partir :
sudo systemctl restart httpd Configuration de PHP pour fonctionner avec Nginx #
Par défaut, PHP FPM s'exécute en tant qu'utilisateur apache . Pour éviter les problèmes d'autorisation, nous allons changer l'utilisateur en nginx . Pour cela, modifiez les lignes surlignées en jaune :
sudo nano /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf...
user = nginx
...
group = nginx
Assurez-vous que le /var/lib/php répertoire a le bon propriétaire :
chown -R root:nginx /var/lib/php Une fois cela fait, redémarrez le service PHP FPM :
sudo systemctl restart php-fpm Ensuite, modifiez la directive d'hôte virtuel Nginx et ajoutez le bloc d'emplacement suivant afin que Nginx puisse traiter les fichiers 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;
}
} Pour que la nouvelle configuration prenne effet, redémarrez le service Nginx :
sudo systemctl restart nginx Mettez à jour le contexte de sécurité SELinux :
sudo chcon -Rt httpd_sys_rw_content_t /var/www