Maison  >  Article  >  Configuration et principe de nginx+php

Configuration et principe de nginx+php

无忌哥哥
无忌哥哥original
2018-06-27 15:17:541800parcourir

L'utilisation de nginx+php comme modèle d'architecture de serveur Web est largement utilisée de nos jours. Cependant, la première étape à réaliser est de savoir comment faire en sorte que nginx appelle correctement php. Étant donné que nginx appeler php n’est pas aussi simple que d’appeler un fichier statique, cela nécessite une exécution dynamique du script php. Cela implique donc la configuration du fichier nginx.conf. Pour les novices, cette étape nécessite généralement une recherche d'informations en ligne. Pour les vétérans ordinaires, de nombreux étudiants ne comprennent pas pourquoi une telle configuration est nécessaire. Le contenu principal de cet article est de savoir comment configurer correctement la méthode d'appel php sur le serveur nginx et les principes de base de la configuration.

1. Le principe de fonctionnement de nginx+php :

Tout d'abord, parlons brièvement du principe de fonctionnement actuel de nginx+php est le suivant. :

1. Le processus de travail nginx gère directement chaque requête réseau vers nginx.

2. Pour php, puisque php joue le rôle d'un programme cgi dans l'ensemble du processus de requête réseau, un programme de gestion de processus appelé php-fpm est utilisé pour gérer ces programmes php demandés. Le programme php-fpm, comme nginx, doit écouter sur le port et disposer de processus maître et de travail. Le processus de travail gère directement chaque processus PHP.

3. À propos de fastcgi : fastcgi est un gestionnaire de processus qui gère les processus cgi. Il existe de nombreux gestionnaires de processus sur le marché qui implémentent les fonctions fastcgi, et php-fpm en fait partie. Encore une chose, php-fpm, en tant que service de gestion de processus fast-cgi, écoutera le port. Généralement, il écoute le port 9000 par défaut et surveille la machine locale, c'est-à-dire qu'il ne reçoit que les demandes de port de la part du port. machine locale, nous entrons donc généralement la commande netstat -nlpt|grep php-fpm obtiendra :

tcp 0 0 127.0.0.1:9000 0.0.0.0:* 🎜>

Le 127.0.0.1:9000 voici la surveillance de la signification du port 9000 de cette machine.

4. Concernant les fichiers de configuration fastcgi, actuellement les fichiers de configuration fastcgi sont généralement placés dans le même répertoire que nginx.conf. Il existe généralement deux types de fichiers de configuration : fastcgi.conf et fastcgi_params. Différentes versions de nginx auront des fichiers de configuration différents. Il existe une différence très importante entre ces deux fichiers de configuration : la configuration suivante est manquante dans le fichier fastcgi_parames :

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

us Vous pouvez ouvrir le fichier fastcgi_parames et ajouter la ligne ci-dessus, ou vous pouvez l'ajouter dynamiquement là où vous souhaitez utiliser la configuration. Faites en sorte que cette configuration prenne effet.

5. Lorsqu'une requête php doit être traitée, le processus de travail de nginx transmettra la requête au processus de travail de php-fpm pour traitement. C'est-à-dire que nginx appelle php au début. En fait, à proprement parler, c'est nginx qui appelle php indirectement.

Après avoir compris les cinq principes simples ci-dessus, configurer la méthode d'appel php dans nginx devient facile.

2. Fichier de configuration :

Collez directement le code pour expliquer ligne par ligne Voici la configuration nginx vhost la plus simple qui puisse démarrer le script php normalement :

1. Le premier serveur entre accolades{ } : Inutile de dire qu'il représente un serveur indépendant,
server {
    listen       8011;
    server_name  test.cn;
    location ~ \.php?.*$ {
        root           /share/test;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

2 écouter 8011 : représente le serveur qui écoute le port 8011

3. Emplacement ~ .php?.*${ } : représente un emplacement qui peut correspondre à l'uri correspondant. Il est utilisé pour faire correspondre un type d'uri et créer une logique et une configuration personnalisées pour la requête d'uri correspondante. L'emplacement ici correspond à toutes les requêtes uri avec .php, par exemple : http://192.168.244.128:8011/test.php/asdasd http://192.168.244.128:8011/index.php, etc.

4. root /share/test : demandez le répertoire racine de la ressource et indiquez à l'URI correspondant à l'emplacement d'accéder au dossier /share/teset pour trouver la ressource portant le même nom.

5. fastcgi_pass 127.0.0.1:9000 : Le début de cette ligne est au centre de cet article : cette ligne de code signifie que la requête uri entrant dans l'emplacement est considérée comme un programme cgi et la requête est envoyée vers le port 9000 est géré par php-fpm.

6. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; : Cette ligne de configuration signifie : une ligne de configuration fastcgi est ajoutée dynamiquement, et le contenu de la configuration est SCRIPT_FILENAME, qui informe le processus de gestion du nom du script cgi. . Comme il n'y a que le fichier fastcgi_params dans mon nginx et pas de fichier fastcgi.conf, pour que php-fpm connaisse la valeur spécifique de SCRIPT_FILENAME, cette ligne de configuration doit être ajoutée dynamiquement.

7. inclure fastcgi_params ; introduire le fichier de configuration fastcgi

Ce qui précède est la version la plus simple de la configuration la plus simple du script php de démarrage de nginx. Après avoir redémarré nginx, créez-en un dans le répertoire /share/test. xx.php, entrez b931974eff9866af0d6a116268bb1793 pour l'enregistrer, puis visitez localhost:8011/xx.php dans le navigateur pour afficher hello world sur la page Web.

3. Résumé :

En fait, pour appeler des scripts cgi tels que php, à condition de comprendre les 5 principes que j'ai mentionnés au début, puis de combiner lignes 5 à 7 Avec l'explication de la configuration, vous pouvez clairement comprendre pourquoi vous devez le configurer de cette façon. Pour les novices, ils sont souvent déroutés par les programmes cgi fastcgi et php-fpm. Ils les configurent de manière aléatoire et les exécutent en ligne sans approfondir leurs principes. J’espère donc que ce que j’écris ici pourra être utile aux lecteurs.

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