Maison >développement back-end >tutoriel php >Configuration de PHP derrière Nginx avec FastCGI

Configuration de PHP derrière Nginx avec FastCGI

Lisa Kudrow
Lisa Kudroworiginal
2025-02-23 08:34:12373parcourir

nginx et fastcgi: une configuration PHP haute performance

L'exécution d'applications PHP avec Nginx et FastCGI offre des avantages significatifs de performances et d'évolutivité par rapport à l'approche traditionnelle APACHE / MOD_PHP. Ce guide détaille la mise en place de cette architecture haute performance sur le serveur Ubuntu, en tirant parti de l'efficacité de FastCGI et de la puissance de Nginx.

FastCGI: A Performance Boost

Les frais généraux inhérents de CGI de la création d'un nouveau processus pour chaque demande sont atténués par FastCGI. FastCGI maintient des processus persistants, réduisant considérablement la consommation de processeur et de temps. Cela conduit à une amélioration de l'évolutivité et de l'efficacité globale du serveur. L'image ci-dessous illustre un processus CGI typique.

Setting Up PHP behind Nginx with FastCGI

Installation et configuration de base

  1. Installez PHP et NGINX: Utilisez APT pour installer les packages nécessaires:

    <code class="language-bash">sudo apt-get install php5-cli php5-fpm nginx</code>
  2. Configurer nginx: Évitez l'édition directement de la configuration Nginx par défaut. Créez plutôt une copie:

    <code class="language-bash">cd /etc/nginx
    sudo rm sites-enabled/default
    sudo cp sites-available/default sites-available/my-default
    sudo ln -s /etc/nginx/sites-available/my-default sites-enabled/default</code>
  3. Activer la FastCGI: Décommente les lignes pertinentes dans /etc/nginx/sites-available/my-default pour acheminer les demandes PHP vers le service FastCGI (PHP5-FPM). La section cruciale doit ressembler à ceci:

    <code class="language-nginx">location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }</code>
  4. Démarrer nginx:

    <code class="language-bash">sudo service nginx start</code>
  5. Vérifiez l'installation: Créer info.php (contenant <?php phpinfo(); ?>) dans la racine Web (/usr/share/nginx/html). L'accès info.php dans votre navigateur doit afficher les informations PHP, confirmant l'intégration de Nginx et PHP via FastCGI. L'API du serveur doit afficher "FPM / FASTCGI".

Setting Up PHP behind Nginx with FastCGI

Améliorations de configuration essentielles

  • Autorisations de racine Web: Ajustez les autorisations pour éviter la constante sudo Utilisation:

    <code class="language-bash"> sudo adduser <username> www-data
     sudo chgrp -R www-data /usr/share/nginx/html
     sudo chmod -R g+rw /usr/share/nginx/html
     sudo chmod g+s /usr/share/nginx/html</username></code>
  • Gérer les scripts inexistants: Ajouter une directive try_files à la configuration Nginx pour améliorer la sécurité:

    <code class="language-nginx"> location ~ \.php$ {
         try_files $uri $uri/ =404;
         # ... other FastCGI directives ...
     }</code>
  • Migration à partir d'Apache: Utilisez des convertisseurs en ligne pour traduire les directives Apache (par exemple, .htaccess Règles) en équivalents Nginx. Passez soigneusement la configuration convertie avant de l'implémenter.

Conclusion

Ce guide fournit une base robuste pour la mise en place d'un environnement PHP haute performance à l'aide de Nginx et FastCGI. En suivant ces étapes et en incorporant les améliorations de sécurité et de performances recommandées, vous pouvez créer un serveur Web évolutif et efficace pour vos applications PHP. N'oubliez pas de toujours consulter la documentation officielle de Nginx et PHP pour les informations les plus à jour et les meilleures pratiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn