2011-07-15 8 views
1

私のローカルマシン(apache2、php、mysql)で開発しています。私はライブサーバー(nginx、mysql、php5-fpm)にファイルをアップロードしたいときは、最初に私のwwwフォルダをバックアップし、データベースを抽出し、サーバーにscpを送ります(これはopiekeyで保護されているので面倒です)サーバーの私のホームディレクトリから私のwwwディレクトリにファイルをコピーしてください。私が運が良ければ、ファイルのアクセス権とその他すべてがうまくいけば、私は変更をオンラインで見ることができます。私が不運な場合は、何がうまくいかないかを調べなければならないでしょう。Linux:ライブサーバーにファイルをアップロードする - プロセスを自動化する方法は?

今日、私は1つのファイルだけを変更し、このファイルのためだけにプロセス全体を完了しなければなりませんでした。あなたはそれがどれほど迷惑であるか想像することができます。これを行うより速い方法がありますか?すべてを自動化する方法は? SVNで "コミット"のようなものがありますか?

あなたはどのようにこれらのタイプのものを処理しますか?

PS:私はこのすべてに非常に新しいので、私に同行してください!たとえば、私はscpが/ var/wwwフォルダに直接コピーしているように見えないので、ファイルをサーバのホームディレクトリにコピーしていますか?

答えて

1

私は "SVN"のアプローチはあなたが本当に望むものに非常に近いと思います。あなたは数分ごとに "svn update"を実行するcronジョブを作成します(またはgitと同様、水銀を使用する場合はhg pull -u)。もう一つの選択肢はdropbox(私たちは時には私たちのWebサーバー用に使います)です - これはsetypとUIデザイナーのような非開発者との共有が非常に簡単です...

2

多くのユーティリティがあります。あなたがPythonを知っているなら、fabricを試してください。あなたがルビーを知っているなら、あなたはcapistranoを好むかもしれません。それらを使用すると、ローカル操作とリモート操作の両方をスクリプトすることができます。

世話をするサーバーのファームがある場合は、2つが必要なスケールで動作しない可能性があります。 10台以上のサーバーについては、サーバーを完全に管理するにはchefまたはpuppetを参照してください。

ローカルチェックアウト、パッケージ化されたソース(私の推奨する解決策)、リモートリポジトリ、またはまったく別のものから展開するかどうかは、あなた次第です。あなたのために働くものは大丈夫です。デプロイメントが再現可能であることを確認してください(「5分前には壊れていない、5分前には何を持っていたかったか」ということはいつでも言えることです)。あなたが使用するバージョン管理の方法は、バージョン管理なしより優れています(タグ付きリリースがおそらく最も快適です)。

0

rsyncはローカルマシンとリモートマシンの間でのみ変更を送信します。それはscpの代わりになります。あなたは、あなたが必要とすることをするためにそれを設定する方法を調べることができます。

/var/wwwにコピーすることはできません。これは、コピーセッションにログインするために使用している資格情報には、/ var/wwwへのアクセス権がないためです。あなたがroot権限を持っていると仮定して、/ var/www(あるいはそれより良いサブディレクトリ)のグループ(chown)をあなたのグループに変更し、あなたのグループへのアクセスを許可するようにアクセス権を変更します(chmod g + w)。

rsyncはかなり軽量なので、簡単に進まなければなりません。

関連する問題