Verwenden Sie Webhook, um PHP-Projekte automatisch bereitzustellen

藏色散人
Freigeben: 2023-04-08 07:26:01
nach vorne
3332 Leute haben es durchsucht

1. Lassen Sie uns zunächst über das Prinzip der automatischen Bereitstellung sprechen. Wenn wir den Code übertragen, können wir automatisch die im Webhook festgelegte URL anfordern, um eine Anfrage und Antwort abzuschließen. Solange der Inhalt der PHP-Datei, die über die von uns festgelegte URL-Adresse angefordert wird, darin besteht, den Befehlszeilenbefehl git push auszuführen, können wir den Code jedes Mal, wenn wir ihn lokal übertragen, an das Remote-Ende übertragen, und der Server führt automatisch git pull aus um den neuesten Zweig zu ziehen.

2. Dann müssen wir zwei Orte festlegen:

①Die Webhook-Einstellungen des Git-Projekts:

Im Allgemeinen auf der Plattform, auf der wir den Code hosten In den Projekteinstellungen gibt es normalerweise nur einen Inhalt, nämlich die URL-Einstellung. Hier habe ich http://www.xxxxx.com/webhook.php festgelegt. Offensichtlich befinde ich mich im Stammverzeichnis der Website und werfe eine webhook.php-Datei. Jedes Mal, wenn ich Code an das entfernte Ende schiebe, wird auf die webhook.php-Datei meiner Website zugegriffen)

②Die Hook-Datei auf der Serverseite (wo der Code ausgeführt wird) ( webhook.php) Einstellungen:

$command = 'cd 代码位置';
$output = shell_exec($command);
 
$command = 'git pull';
$output = shell_exec($command);
print $output;
Nach dem Login kopieren

Hier sind zwei einfache Sätze, um das entsprechende Verzeichnis einzugeben und dann den Git-Pull-Befehl auszuführen


Hauptsächlich für die Funktion „shell_exec()“ verwendet. Dies ist eine Funktion für PHP zum Ausführen der Befehlszeile.

Was hier zu beachten ist, ist, dass ich Wenn ich zuvor den Befehl „shell_exec()“ ausgeführt habe, reagierte der Server nicht mehr und blieb hängen. Deshalb habe ich zum Testen den Befehl

$output = shell_exec('ls');
print_r($output);
Nach dem Login kopieren

verwendet und festgestellt, dass auch eine Zeitüberschreitung aufgetreten ist, was sehr seltsam war, also habe ich ihn immer wieder beiseite gelegt und Ich konnte nicht herausfinden, was los war. Schließlich waren es nur drei oder fünf Zeilen Code, und ich wusste nicht, warum es ständig eine Zeitüberschreitung anforderte. Zwei Monate später fragte ich mich, ob es ein Problem mit der String-Kodierung des Originaldrucks war? Wir haben also folgende Codezeilen:

$encode = mb_detect_encoding($output, array('ASCII','GB2312','GBK','UTF-8'));
$trans = iconv( $encode, "UTF-8",$output);
print $trans;
Nach dem Login kopieren

Dann kann es ausgeführt werden. . . Ich kann mich nicht erinnern, warum es bei Shell_exec() immer wieder zu Zeitüberschreitungen kam. Freunde, denen es erneut aufgefallen ist, können versuchen, den zurückgegebenen Inhalt nicht zu drucken oder den gedruckten Inhalt zu kodieren. Ich glaube jedoch, dass es immer noch eine kleine Anzahl von Freunden gibt, die auf dieses widerliche Problem stoßen.

Weitere PHP-Kenntnisse finden Sie im

PHP-Tutorial

!

Das obige ist der detaillierte Inhalt vonVerwenden Sie Webhook, um PHP-Projekte automatisch bereitzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage