2016-03-28 10 views
1

私はホストされたサーバ上で私のWebアプリケーションを開発しています。私は編集中のファイルを自動的にダウンロード/アップロードするIDEを使用します。更新作業に使用する2番目のサーバー(development.domain.com)を設定したいと考えています。アップデートを完了してテストしたら、どのようにしてすべての変更をリリース・サーバーにプッシュできますか(データベース・スキームの変更、ファイルの変更/追加/削除、cronへのシステム変更など) 1つのボタンで私のためにこれを行うソフトウェアはありますか、私が行ったすべての変更を追跡してから、ファイルをコピーして、プロダクションサーバー上でスキームを変更する必要がありますか? ありがとう開発/プロダクションPHP/MYSQLサーバの設定

+1

git for source code trackingとデータベースの更新は、作成しているソフトウェアで管理する必要があります。 –

答えて

0

ソース管理を使用して、継続的な統合ソリューションまたは継続的な展開ソリューションを検討します。

3

これは素晴らしい問題で、多くの初期の開発者が直面しています。我々は、StrollUpで、TomcatとElastic BeanStalkを使用して、本番マシンの配備を担当します。だから私たちのdev環境からwarファイルをアップロードするのは簡単です。また、Elastic beanstalkを試してみることもできます。 LaravelのようないくつかのPHPフレームワークは、これらの機能性RoRを提供します。ディレクトリ全体をアップロードし、あなたのdevのコードをテストした後

  1. :サーバーをprodにコードをプッシュ

    1. :しかし、あなた自身のPHPコードと単一インスタンスPRODサーバとあなたはこれらのガイドラインに従うことができます/ var/www/html/YOUR_PROJECT(圧縮された、つまりYOUR_PROJECT.gzまたはYOUR_PROJECT.phar)をプロードサーバーにアップロードする(1つずつアップロードしないで、一部のファイルが正常にアップロードされ、失敗する可能性があります)

    2. Unzipプロダクトサーバ上の圧縮されたアップロードファイル
    3. デシベルを転送
  2. を変更します。

    1. Dbの変更は、両方のDDLとDMLが含まれる可能性があります。 (私によると)プロダクトを転送する最良の方法は、の順番でsqlを保存して、開発環境で実行し、プロダクトサーバーで圧縮プロジェクトを解凍する直前に実行することです。
    2. 別の方法(示唆されていませんが、私にとってはうまくいきます)は、devデータベース全体(ユーザーまたはログテーブルではない)をprodデータベースにダンプすることです。 Cronsを転送
    1. を私はDEVからprodにすべてのcronをコピーします。あなたはbashスクリプトでそれを行うことができます。あなたが置くことができます:現在のすべてのcronジョブを#remove -r

      のcrontabは
      のcrontab cron.txt位

上記についての最もよい部分は手順cron.txtに記載されているすべてのcronジョブを置きます上記のすべてのステップをbashスクリプトで実行し、1行で実行します。1つのクリックボタンで自分のソフトウェアと同じようになります;) 自分で「ワンクリック」スクリプトを作成しましたが、TomcatとElastic Beanstalkに固有のものです。あなたはそれがあなたの進め方についていくつかのアイデアを与えるかもしれない外観を持つことができます。AWS Deploy

最も重要なの:最初のprodサーバー上のSQLクエリを実行する前に、両方のデータベースのDBバックアップを取ります。すべての変更を安全に保つために、VCS(git、bitbucketは良いオプションです)を使用してください。

関連する問題