Ldfa Posté(e) le 31 décembre 2019 Partager Posté(e) le 31 décembre 2019 Voici notre quatrième article dans la série sur Nginx. Notre précédent article traitait de l’hébergement de plusieurs sites statiques sur une même machine. Aujourd’hui nous allons aborder l’hébergement de pages dynamiques. Héberger des pages dynamiques Pour commencer, je crée un hôte php.slackbox.fr dans ma configuration DNS. Les pages de cet hôte seront hébergées sous l’arborescence /var/www/php-site/html. $ cd /var/www/ $ sudo mkdir -pv php-site/html mkdir: created directory ‘php-site’ mkdir: created directory ‘php-site/html’ $ sudo chown -R microlinux:microlinux php-site/ $ cd php-site/html/ Je crée un fichier index.php à la racine de ce site et je l’édite comme ceci. <?php echo phpinfo(); ?> La prochaine étape consiste à installer PHP ainsi que le service PHP-FPM. J’opte pour la version 7.2 fournie par les dépôts tiers SCLo (Red Hat Software Collections). J’ai détaillé l’installation de PHP 7.2 sous CentOS 7 dans cet article. Pour les besoins de notre atelier pratique, je me contente d’installer le minimum syndical requis. $ sudo yum install rh-php72 rh-php72-php-fpm J’active et je démarre le service PHP-FPM. $ sudo systemctl enable rh-php72-php-fpm --now Je vérifie s’il tourne correctement. $ systemctl status rh-php72-php-fpm Je crée un fichier /etc/nginx/conf.d/php.slackbox.fr.conf pour configurer mon hébergement. # /etc/nginx/conf.d/php.slackbox.fr.conf server { listen 80; server_name php.slackbox.fr; root /var/www/php-site/html; access_log /var/log/nginx/php.slackbox.fr-access.log; error_log /var/log/nginx/php.slackbox.fr-error.log; try_files $uri $uri/ =404; location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Cette configuration mérite quelques remarques. Le contexte location concerne tous les fichiers qui se terminent par *.php. Le caractère tilde ~ indique ici que nous utilisons les expressions régulières. Nginx n’est pas capable d’interpréter directement les pages PHP comme le ferait Apache avec mod_php. Au lieu de cela, il agit comme proxy inverse (reverse proxy) et passe les requêtes en question à PHP-FPM grâce à la directive fastcgi_pass. La directive include prend en compte le fichier /etc/nginx/fastcgi_params. Les détails inquiétants autour des paramètres FastCGI sont expliqués dans cet article. Si vous ne comprenez pas tout, cela ne vous empêchera pas de vivre. Il ne nous reste plus qu’à ajouter index.php à la liste des index dans /etc/nginx/nginx.conf. # /etc/nginx/nginx.conf user nginx; worker_processes auto; events { worker_connections 1024; } http { include mime.types; include conf.d/*.conf; index index.php index.htm index.html; server { listen 80 default_server; server_name sd-100246.dedibox.fr; root /usr/share/nginx/html; access_log /var/log/nginx/sd-100246.dedibox.fr-access.log; error_log /var/log/nginx/sd-100246.dedibox.fr-error.log; try_files $uri $uri/ =404; } } Je teste et je recharge la configuration. $ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo systemctl reload nginx Si tout s’est bien passé, les infos PHP s’affichent comme ceci. La suite au prochain numéro, où nous allons nous intéresser à la configuration d’un site sécurisé. La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse. Partager : Articles similaires Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.