ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して SVN のリモート フックを確立し、exec コマンドを使用して SVN コードを自動的に更新します。

PHP を使用して SVN のリモート フックを確立し、exec コマンドを使用して SVN コードを自動的に更新します。

WBOY
リリース: 2016-06-20 12:46:48
オリジナル
864 人が閲覧しました

この操作には、sudo コマンドを実行するための PHP の権限が必要です。関連する設定については、次を参照してください:
apache/Nginx でシステム コマンドを実行するには、sudo 権限を使用する

スルーSvn フック機能では、SVN 操作を実行するときにいくつかの操作を自動的に実行できます。より一般的な操作は次のとおりです。
1. コードをローカルで更新して送信する場合、テスト環境またはオンライン環境でコードを最新バージョンに更新します。同時に
2. Svn を更新するときに、データベース関連の操作がある場合、SQL をリモート フック プログラムに送信して、関連する SQL を同時に実行できます

この例は使用されるフラグメントです私たちのプロジェクト チームによるローカル開発の実装 コード テストに合格した後、SVN をオンラインで送信すると、コードは自動的にオンラインで更新されるか、エクスポートされてパッケージ化されます

<?php//先切换到程序部署的目录$path = dirname(__FILE__);exec("cd {$path}"); exec("sudo /usr/bin/svn up", $output);print_r($output);
ログイン後にコピー

ここで、Apache を sudoer グループに追加する必要があります

この場合、sudo 設定ファイルを変更し、visudo コマンドを使用して設定ファイルを直接編集します。

1. コメントのデフォルト requiretty
Defaults requiretty を #Defaults requiretty に変更します。制御端子が必要ないことを示します。
それ以外の場合は sudo: 申し訳ありませんが、sudo を実行するには tty が必要です

2. 行を追加します Defaultsvisiblepw
それ以外の場合は sudo: no tty present and no askpassプログラムが指定されています

3 svn
を実行するためのアクセス許可を Apache ユーザーに付与します。たとえば、次の行を追加します。 apache ALL=(ALL) NOPASSWD: /usr/bin/svn
注: NOPASSWD を使用すると、次の場合に Apache ユーザーを対話的に入力する必要がなくなります。コマンドの実行 Password

最後のステップは、SVN


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート