10

私の Ubuntu サーバーには Apache と Subversion がインストールされています。このサーバーをステージング サーバーとして、純粋にテスト目的で使用します。Apache を使用して Web アプリケーションをホストし、Subversion を使用してソース コードのバージョン管理されたコピーを保持しています。

私の現在のワークフロー:

  • ファイルに変更を加える
  • ファイルを Subversion リポジトリにコミットします
  • ファイル new を SFTP 経由で Apache パブリック ディレクトリにアップロードします。
  • Web ブラウザーで変更を表示する

私のワークフローが次のようなものであれば、私はもっと幸せになるでしょう:

  • ファイルに変更を加える
  • ファイルを Subversion リポジトリにコミットします
  • バックグラウンドで、Subversion はコミットされたファイルのコピーを Apache パブリック ディレクトリに配置します。
  • Web ブラウザーで変更を表示する

私はサーバー管理の経験がほとんどないため、ヘルプやアドバイスをいただければ幸いです。コミット後のフックが必要であり、これを行うための bash スクリプトを作成できると聞きましたが、どこから始めればよいかわからず、かなりの数のグーグルの後で実際には何も見つかりませんでした。

ありがとうございました!

4

3 に答える 3

11

「公式」の答えはこちらです。

リポジトリで Web サイトを管理しています。コミットのたびにライブ サイトを自動的に更新するにはどうすればよいですか?

于 2008-09-26T16:47:15.160 に答える
0

それは可能ですが、すべてのコミットを本番Webサイトに自動的にプッシュすることは必ずしも良い考えではありません。他にも変更が必要な場合があり、新しいコードが存在するためにサイトが破損しますが、データベーススキーマはまだ更新されていないため、恥ずかしいだけです。

代わりに私がする傾向があるのは、サーバーのチェックアウトにsvnのコピーを作成し、発生する必要のある他のすべての準備ができたら、サーバーのsvn更新を実行することです。

ただし、本当に必要な場合は、コミット後のトリガーにコマンドを配置できます。これにより、すべてが自動的に実行されます。これには、サーバー上で移行スクリプトを実行して(この変更用に存在する場合)、発生する必要のあるコード以外の変更を処理することが含まれる場合があります。

于 2008-09-26T16:49:01.740 に答える
0

I think the real, overarching question you should be asking yourself---which you may already have asked yourself of course---is this: "how can I test my code most easily before deploying it?"

I think a good answer is to install Apache on your development box and run it as your own user, with webroot and/or cgi path at /home/richardhenry/src/mywebsite (or whereever you check out your code).

That way, you can test your code without even committing. As a result, you won't litter your trunk with broken or useless commits. In general, keeping independent things independent tends to be A Good Idea (TM).

Alternatively, sync the web server against your working directory with rsync, or write a script which pushes your file(s) from the dev box to your staging server and add a Makefile rule which runs your script (or calls up rsync). If you want to be really fancy, use inotify or some other file notification monitor to run your script automatically.

于 2009-05-25T21:02:28.353 に答える