En tant que développeur PHP, parfois nous ne pouvons pas réaliser un projet ou une fonction seul, tout comme lorsqu'un développeur d'entrepôt compte plus de 1 ou 20 personnes, chaque personne peut développer différents modules et fonctions, en utilisant des versions de code Des outils de contrôle tels que git
ouvrir différentes branches. Le processus consiste probablement à d'abord configurer un environnement complet localement, à le développer et à le déployer dans l'environnement de test, après l'auto-test ou le test du testeur, à le déployer dans l'environnement de pré-version. est fondamentalement le même que la ligne. L'environnement est le même, puis le produit est inspecté une fois l'acceptation terminée, il est mis en ligne. Puisqu'il est développé en parallèle, il doit y avoir des situations où plusieurs fonctions sont acceptées ou testées en même temps. À ce moment-là, quel code est déployé dans l'environnement de pré-version ? Si vous passez à la branche de A, B ne pourra pas l'accepter. Par conséquent, nous espérons qu'il y aura un environnement de développement multi-personnes où le processus de développement de chacun ne s'affecte pas les uns les autres. Dans cet article, nous partagerons avec vous une analyse des principes de l’environnement de développement multijoueur PHP.
Tout d'abord, analysons le principe de fonctionnement de PHP
et examinons les caractéristiques du langage de PHP
. Lorsque nous lançons une requête depuis le navigateur, notre serveur web (Nginx
, Apache
, etc.) écoute le port 80 ou 443. Regardons la configuration Nginx
la plus simple de vhost
:
server { listen 80; server_name test.com; root /data/gateway/html; index index.php; location ~ \.php$ { fastcgi_pass 127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Nginx
écoute le port 80 et utilise la configuration test.com
correspondante lorsqu'elle correspond au fait que le nom de domaine visité par l'utilisateur est vhost
. Sur le serveur, PHP-FPM démarre un service et écoute un port (tel que 9001) ou un unix socket
est configuré via fastcgi_pass
et transmet la requête à PHP-FPM
pour analyser le code PHP. commence à partir de Commencez l'analyse, continuez le traitement en cours de route, effectuez une série de traitements logiques, interrogez la base de données ou le cache, etc., renvoyez un index.php
ou d'autres résultats à HTML
, puis renvoyez Nginx
au navigateur. Le processus est le suivant : Nginx
: Il s'agit d'un type d'échange de données entre CGI
et Nginx
protocole. PHP_FPM
: Identique à FastCGI
, c'est un protocole de communication, mais il présente quelques optimisations en termes d'efficacité par rapport à CGI
. CGI
: C'est le programme d'interface du protocole PHP-CGI
fourni par PHP
. Nginx
CGI
fourni par PHP-FPM
à PHP
, et fournit également une gestion des tâches relativement intelligente. Nginx
FastCGI
Après l'avoir analysé une fois, pouvons-nous nommer plusieurs dossiers sur le serveur en fonction des noms de différents développeurs ? Dans chaque dossier, PHP
bon référentiel de code, basculer vers sa propre branche. Laissez ensuite index.php
gérer l'index dans le répertoire de chaque personne. Par exemple, accédez directement à clone
, récupérez Nginx
dans http://wulv.test.com/
et définissez Nginx
sur le répertoire wulv
, afin de pouvoir accéder au code dans le répertoire root
. Vous pouvez définir wulv
comme ceci : wulv
Nginx
set $who www; if ($http_who != "") { set $who $http_who; } root /data/gateway/$who/html;
et le transporter aux endroits suivants : URL
Nginx
host
http://wulv.test.com
path
http://www.test.com/wulv
query
http://www.test.com?http_who=wulv
doivent vérifier le nom de domaine. Si le nom de domaine n'est pas cohérent avec le nom de domaine en ligne, vous ne pouvez pas vous connecter du tout. D'autres moyens sont donc nécessaires pour y parvenir, tels que : www.test.com
OAuth
http request header
cookie
sur http request
, puis l'obtenir dans http_who
. wulv
Nginx
Extension
http header
PHP
est le meilleur langage au monde, représentant environ 80 % du Web. Les petites et moyennes entreprises utilisent essentiellement l'architecture lnmp
. Lorsqu'il y a plus de 1 ou 20 développeurs dans un entrepôt, chaque personne peut développer différents modules et fonctions, et utiliser des outils de contrôle de version de code tels que git
pour ouvrir différentes branches. Le processus consiste probablement à d'abord mettre en place un environnement complet localement. Après le développement, il est déployé dans l'environnement de test. Après l'auto-test ou le test du testeur, il est déployé dans l'environnement de pré-version. La pré-version est fondamentalement la même que l'environnement en ligne, puis le produit est accepté. Une fois l’acceptation terminée, il est publié et lancé en ligne.
En raison du développement parallèle, il doit y avoir des situations où plusieurs fonctions sont acceptées ou testées en même temps. À ce moment-là, quel code sera déployé dans l'environnement de pré-version ? Si vous passez à la branche de A, B ne pourra pas l'accepter. Par conséquent, nous espérons qu'il y aura un environnement de développement multi-personnes où le processus de développement de chacun ne s'affecte pas les uns les autres.
Tout d'abord, analysons le principe de fonctionnement de PHP
et examinons les caractéristiques du langage de PHP
. Lorsque nous lançons une requête depuis le navigateur, notre serveur web (Nginx
, Apache
, etc.) écoute le port 80 ou 443. Regardons la configuration Nginx
la plus simple de vhost
:
server { listen 80; server_name test.com; root /data/gateway/html; index index.php; location ~ \.php$ { fastcgi_pass 127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Nginx
écoute le port 80 et utilise la configuration test.com
correspondante lorsqu'elle correspond au fait que le nom de domaine visité par l'utilisateur est vhost
. PHP-FPM démarre un service sur le serveur et écoute un port (tel que 9001) ou un unix socket
est configuré via fastcgi_pass
et transmet la requête à PHP-FPM
pour analyser le code PHP. à partir de Commencez l'analyse, continuez le traitement, effectuez une série de traitements logiques, interrogez la base de données ou le cache, etc., renvoyez un index.php
ou d'autres résultats à HTML
, puis renvoyez Nginx
au navigateur. Le processus est le suivant : Nginx
: Il s'agit d'un type d'échange de données entre CGI
et Nginx
protocole. PHP_FPM
: Identique à FastCGI
, c'est un protocole de communication, mais il présente quelques optimisations en efficacité par rapport à CGI
. CGI
: C'est le programme d'interface du protocole PHP-CGI
fourni par PHP
. Nginx
CGI
fourni par PHP-FPM
à PHP
, et fournit également une gestion des tâches relativement intelligente. Nginx
FastCGI
Après l'avoir analysé une fois, pouvons-nous nommer plusieurs dossiers sur le serveur en fonction des noms de différents développeurs ? Dans chaque dossier, PHP
basculer vers le référentiel de code et basculer vers sa propre branche. Laissez ensuite index.php
gérer l'index dans le répertoire de chaque personne. Par exemple, accédez directement à clone
, récupérez Nginx
dans http://wulv.test.com/
et définissez Nginx
sur le répertoire wulv
, afin de pouvoir accéder au code dans le répertoire root
. Vous pouvez définir wulv
comme ceci : wulv
Nginx
set $who www; if ($http_who != "") { set $who $http_who; } root /data/gateway/$who/html;
et le transporter aux endroits suivants : URL
Nginx
host
http://wulv.test.com
path
http://www.test.com/wulv
query
http://www.test.com?http_who=wulv
doivent vérifier le nom de domaine. Si le nom de domaine n'est pas cohérent avec le nom de domaine en ligne, vous ne pouvez pas vous connecter du tout. D'autres moyens sont donc nécessaires pour y parvenir, tels que : www.test.com
OAuth
http request header
cookie
sur http request
, puis l'obtenir dans http_who
. wulv
Nginx
Extension
http header
Recommandations associées :
Encyclopédie de l'environnement de développement intégré PHP Comment créer un environnement de développement JSP