Webhook を使用して PHP プロジェクトを自動的にデプロイする

藏色散人
リリース: 2023-04-08 07:26:01
転載
3262 人が閲覧しました

1. まず自動デプロイの原理について話しましょう. 通常、コードをプッシュすると、Webhook に設定された URL を自動的にリクエストして、リクエストとレスポンスを完了することができます。したがって、設定した URL アドレスによって要求された PHP ファイルの内容がコマンド ラインの git Push コマンドを実行するものである限り、毎回ローカルでコードをリモート エンドにプッシュでき、サーバーは自動的に git pull と pull を実行します。最新のブランチ。

2. 次に、設定する必要があるのは 2 か所です:

①git プロジェクトの Webhook 設定:

通常、コードをホストするプラットフォームでは、これはプロジェクト設定に 1 つあります。通常、Webhook 設定には URL 設定というコンテンツが 1 つだけあります。ここでは http://www.xxxxx.com/webhook.php

(明らかに、私は Web サイトのルート ディレクトリにいます。webhook.php ファイルをスローすると、コードをリモート エンドにプッシュするたびに、Web サイトの webhook.php ファイルがアクセスされます)

②フック ファイルサーバー側 (コードが実行される場所) ( webhook.php) の設定:

$command = 'cd 代码位置'; $output = shell_exec($command); $command = 'git pull'; $output = shell_exec($command); print $output;
ログイン後にコピー

ここに 2 つの簡単な文があります。最初に cd コマンドで対応するディレクトリに入り、次に git pull コマンドを実行します

主にshell_exec()関数で使用します。PHPがコマンドラインを実行するための関数です。Baiduで学生向けに詳しく紹介しています。

ここで注意したいのは、以前にshell_exec()コマンドを実行したところ、サーバーが応答しなくなって固まってしまったので、

$output = shell_exec('ls'); print_r($output);
ログイン後にコピー

コマンドを使ってテストしたところ、タイムアウトになったこともわかりました。これは非常に奇妙だったので、そのままにしておきました。結局のところ、それはわずか 3 ~ 5 行のコードであり、なぜタイムアウトを要求し続けるのかわかりませんでした。 2 か月後、元の印刷物の文字列エンコーディングに問題があるのではないかと考えました。したがって、次のコード行があります。

$encode = mb_detect_encoding($output, array('ASCII','GB2312','GBK','UTF-8')); $trans = iconv( $encode, "UTF-8",$output); print $trans;
ログイン後にコピー

これで実行できます。 。 。以前、shell_exec() がなぜタイムアウトを繰り返していたのか思い出せませんが、再びこのエラーに遭遇した友人は、返された内容を印刷しないようにするか、印刷された内容をエンコードしないようにしてください。しかし、この忌まわしい問題に遭遇する友人もまだ少数いると思います。

PHP 関連の知識について詳しくは、PHP チュートリアルをご覧ください。

以上がWebhook を使用して PHP プロジェクトを自動的にデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!