phpはlinuxの下でwebhookを調製します

1662 ワード

execには3つのパラメータがあり、1つ目は実行するコマンドで、2つ目はパラメータが1つの配列で、配列の値は1つのコマンドが実行された後に生成され、3つ目のパラメータが実行された状態で、0は成功を表し、その他は失敗を表す.
 
1.linux切替ユーザー
現在rootユーザーである場合、一般ユーザーtestに切り替えるには、次のコマンドを使用します.su-test rootユーザーに戻るには、次のコマンドを使用します.suまたはsu-
 
 
2.linuxでphpを実行するユーザと、WebHooksがトリガしたときにphpを実行するユーザは、2人のユーザsudo mkdir-p/home/www/.sshsudo chown -R www.www/home/www/.sshsudo -Hu www ssh-keygen -t rsa
3. sudo -Hu www git clone https://git.coding.net/Tinywan/auto-test.git/home/www/web/hook/auto-test/--depth=1
クローンを初期化するときはwwwユーザーで引く
 
4.公開秘密鍵の生成
sudo-hu www ssh-keygen-t rsa#「no passphrase」を選択して、ずっと車に戻ってください#sudo cat/var/www/.ssh/id_rsa.pub#これは単一プロジェクトのsudo cat/home/www/.ssh/id_rsa.pub#生成された鍵の内容を表示し、すべてコピー-Hu wwwコマンド:-uはどのユーザに切り替えたかを表し、ここではwww -HはHOME環境変数を切り替えた値、すなわちpasswordファイルのwwwユーザ対応ホームディレクトリを表す
 
5.weehookファイルの内容
$cmd = "cd/www/wwwroot/nxxxx/nxx/&&sudo git reset --hard origin/pt && sudo git pull origin pt && sudo git pull --all && sudo git pull origin pt 2>&1";
$res = array();exec($cmd,$res);
var_dump($res);
 
6.原因
1、私たちのサーバー上のwebファイルは、多くのユーザーとユーザーグループがwwwなので、普段PHPファイルを実行しても、wwwユーザーが実行しています.では、wwwユーザーでコードウェアハウスcloneを降りて、wwwとしてssh鍵ssh-keygen-t rsa-C"[email protected]「生成後、githubのプロジェクト構成に公開鍵を置くことを忘れないでください.
wwwユーザーで公開秘密鍵を作成するにはhookが成功します.
 
回転:https://blog.csdn.net/qq756684177/article/details/81335649
https://www.v2ex.com/amp/t/455526
https://www.cnblogs.com/wdw31210/p/11211978.html
https://www.cnblogs.com/wdw31210/p/11009968.html