Als PHP-Entwickler können wir manchmal ein Projekt oder eine Funktion nicht alleine fertigstellen. Genauso wie bei einem Warehouse-Entwickler mit mehr als 1 oder 20 Personen kann jede Person unterschiedliche Module und Funktionen entwickeln und dabei Codeversions-Kontrolltools wie Der Prozess besteht wahrscheinlich darin, zunächst eine vollständige Umgebung lokal einzurichten, sie in der Testumgebung bereitzustellen und sie dann in der Vorabversion bereitzustellen ist im Grunde die gleiche wie die Linie, und dann wird das Produkt geprüft. Nach Abschluss der Abnahme wird es online freigegeben. Da es parallel entwickelt wird, muss es Situationen geben, in denen mehrere Funktionen gleichzeitig akzeptiert oder getestet werden. Wessen Code wird zu diesem Zeitpunkt in der Vorabversionsumgebung bereitgestellt? Wenn Sie in den Zweig von A wechseln, kann B dies nicht akzeptieren. Daher hoffen wir, dass es eine Entwicklungsumgebung für mehrere Personen geben wird, in der sich der Entwicklungsprozess aller nicht gegenseitig beeinflusst. In diesem Artikel teilen wir mit Ihnen eine Analyse der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung. git
analysieren und einen Blick auf die Spracheigenschaften von PHP
werfen. Wenn wir eine Anfrage vom Browser initiieren, lauscht unser Webserver (PHP
, Nginx
usw.) auf Port 80 oder 443. Schauen wir uns die einfachste Apache
-Konfiguration von Nginx
an: 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; } }
überwacht Port 80 und verwendet die entsprechende Nginx
-Konfiguration, wenn festgestellt wird, dass der vom Benutzer besuchte Domänenname test.com
ist. PHP-FPM startet einen Dienst auf dem Server und lauscht auf einen Port (z. B. 9001) oder einen vhost
. Nginx wird über unix socket
konfiguriert und leitet die Anfrage an fastcgi_pass
weiter, um den PHP-Code zu analysieren ab PHP-FPM
Starten Sie die Analyse, setzen Sie die Verarbeitung fort, führen Sie eine Reihe logischer Verarbeitungen durch, fragen Sie die Datenbank oder den Cache usw. ab, geben Sie ein index.php
oder andere Ergebnisse an HTML
zurück und geben Sie dann zum Browser. Der Prozess ist wie folgt: Nginx
Nginx
und CGI
Protokoll. Nginx
PHP_FPM
handelt es sich um ein Kommunikationsprotokoll, das jedoch einige Effizienzoptimierungen aufweist als FastCGI
. CGI
CGI
-Protokolls, das von PHP-CGI
bereitgestellt wird. PHP
Nginx
CGI
zu PHP-FPM
bereitgestellt wird, und bietet außerdem eine relativ intelligente Aufgabenverwaltung. PHP
Nginx
FastCGI
den Index im Verzeichnis jeder Person verwalten. Greifen Sie beispielsweise direkt auf PHP
zu, rufen Sie index.php
in clone
ab und legen Sie Nginx
auf das Verzeichnis http://wulv.test.com/
fest, damit Sie auf den Code im Verzeichnis Nginx
zugreifen können. Sie können wulv
wie folgt festlegen: root
wulv
wulv
Wir können Nginx
das Verzeichnis des Benutzers übertragen lassen, es in
set $who www; if ($http_who != "") { set $who $http_who; } root /data/gateway/$who/html;
URL
Nginx
host
http://wulv.test.com
path
http://www.test.com/wulv
query
http://www.test.com?http_who=wulv
Dies kann im Allgemeinen die Anforderungen erfüllen, es gibt jedoch immer noch einige Probleme. Beispielsweise sind einige Links auf der Seite fest codiert und verwenden keine relativen Pfade, sobald Sie darauf klicken , sie werden erneut ausgeführt
www.test.com
OAuth
http request header
cookie
Wir können das Browser-Plugin „Modify Headers“ verwenden, um die Header-Informationen
abzurufen. http request
http_who
Erweiterungwulv
Nginx
Wenn die Bedingungen es zulassen, können Sie tatsächlich einen Gateway-Server erstellen, eine Konfigurationsseite erstellen und die Verzeichnisse konfigurieren, auf die beim nächsten Besuch zugegriffen werden muss Das Gateway hilft Ihnen direkt dabei,
http header
PHP
ist die beste Sprache der Welt und macht etwa 80 % des Webs aus. Kleine und mittlere Unternehmen nutzen grundsätzlich die lnmp
-Architektur. Wenn es mehr als 1 oder 20 Entwickler in einem Warehouse gibt, entwickelt jede Person möglicherweise unterschiedliche Module und Funktionen und verwendet Tools zur Codeversionskontrolle wie git
, um verschiedene Zweige zu öffnen. Der Prozess besteht wahrscheinlich darin, zunächst eine vollständige Umgebung lokal einzurichten Nach der Entwicklung wird es in der Testumgebung bereitgestellt. Nach dem Selbsttest oder Testertest wird es in der Vorabversionsumgebung bereitgestellt, und dann wird das Produkt akzeptiert. Nachdem die Abnahme abgeschlossen ist, wird sie freigegeben und online gestartet.
Aufgrund der parallelen Entwicklung muss es Situationen geben, in denen mehrere Funktionen gleichzeitig akzeptiert oder getestet werden. Wessen Code wird zu diesem Zeitpunkt in der Vorabversionsumgebung bereitgestellt? Wenn Sie in den Zweig von A wechseln, kann B dies nicht akzeptieren. Daher hoffen wir, dass es eine Entwicklungsumgebung für mehrere Personen geben wird, in der sich der Entwicklungsprozess aller nicht gegenseitig beeinflusst.
Lassen Sie uns zunächst das Funktionsprinzip von PHP
analysieren und einen Blick auf die Spracheigenschaften von PHP
werfen. Wenn wir eine Anfrage vom Browser initiieren, lauscht unser Webserver (Nginx
, Apache
usw.) auf Port 80 oder 443. Schauen wir uns die einfachste Nginx
-Konfiguration von vhost
an:
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
überwacht Port 80 und verwendet die entsprechende test.com
-Konfiguration, wenn festgestellt wird, dass der vom Benutzer besuchte Domänenname vhost
ist. Auf dem Server startet PHP-FPM einen Dienst und lauscht auf einen Port (z. B. 9001) oder einen unix socket
. Nginx wird über fastcgi_pass
konfiguriert und leitet die Anfrage an PHP-FPM
weiter, um den PHP-Code zu analysieren Beginnt jedes Mal mit Starten Sie die Analyse, setzen Sie die Verarbeitung fort, führen Sie eine Reihe logischer Verarbeitungen durch, fragen Sie die Datenbank oder den Cache usw. ab, geben Sie ein index.php
oder andere Ergebnisse an HTML
zurück und geben Sie dann zum Browser. Der Prozess ist wie folgt: Nginx
Nginx
und CGI
Protokoll. Nginx
PHP_FPM
handelt es sich um ein Kommunikationsprotokoll, das jedoch einige Effizienzoptimierungen aufweist als FastCGI
. CGI
CGI
-Protokolls, das von PHP-CGI
bereitgestellt wird. PHP
Nginx
CGI
zu PHP-FPM
bereitgestellt wird, und bietet außerdem eine relativ intelligente Aufgabenverwaltung. PHP
Nginx
FastCGI
den Index im Verzeichnis jeder Person verwalten. Greifen Sie beispielsweise direkt auf PHP
zu, rufen Sie index.php
in clone
ab und legen Sie Nginx
auf das Verzeichnis http://wulv.test.com/
fest, damit Sie auf den Code im Verzeichnis Nginx
zugreifen können. Sie können wulv
wie folgt festlegen: root
wulv
wulv
Wir können Nginx
das Verzeichnis des Benutzers übertragen lassen, es in
set $who www; if ($http_who != "") { set $who $http_who; } root /data/gateway/$who/html;
URL
Nginx
host
http://wulv.test.com
path
http://www.test.com/wulv
query
http://www.test.com?http_who=wulv
Dies kann im Allgemeinen die Anforderungen erfüllen, es gibt jedoch immer noch einige Probleme. Beispielsweise sind einige Links auf der Seite fest codiert und verwenden keine relativen Pfade. Sie werden erneut ausgeführt
www.test.com
OAuth
http request header
cookie
Wir können das Browser-Plugin „Modify Headers“ verwenden, um die Header-Informationen
abzurufen. http request
http_who
Erweiterungwulv
Nginx
Wenn die Bedingungen es zulassen, können Sie tatsächlich einen Gateway-Server erstellen, eine Konfigurationsseite erstellen und die Verzeichnisse konfigurieren, auf die beim nächsten Besuch zugegriffen werden muss Das Gateway hilft Ihnen direkt dabei,
http header
Liste der integrierten PHP-Entwicklungsumgebungen
So erstellen Sie eine JSP-Entwicklungsumgebung