私はいくつかの PHP プロジェクトに携わってきましたが、常に作業の整理に問題があります。アプリケーションをどこで開発しますか? ローカルホスト、リモート サーバー、または本番環境 (!) でしょうか? いくつかの主要なパスを作成した後にローカルホストで作業するとき、新しいファイルを ftp で送信しますが、たまたま 1 つのファイルを忘れてしまい、変更されたファイルをコピーするためにいくつかのディレクトリをブラウズするのは面倒です。どのようなベスト プラクティスを提案しますか?
6 に答える
商用サイトの管理方法は次のとおりです。
- ローカル サンド ボックスで開発する
- SVNへのチェックイン
- SVN から内部開発サーバーへの自動ビルド/テスト
- QA/UAT 用のステージング サーバーへの rsync を使用したスクリプトによるデプロイ
- 本番サーバーへのスクリプトによるデプロイ。
ステージング サーバーと運用サーバーはどちらも ISP によってホストされ、ハードウェアとバージョンが一致し、RHEL を実行します。内部開発サーバーはバージョンが一致する CentOS です。
このようにして、コードが本番サーバーにヒットしたときに、展開スクリプトでさえステージ 4 でチェックされるため、厄介な驚きはありません。
Google App Engineには、変更されたファイルを本番環境に自動的にアップロードする適切なツールがあります。PHPに似たようなものがあるかどうかはわかりません。したがって、dev2prod スクリプト (これを自動的に実行するスクリプト) を実行することは、適切な解決策です。
ソース ファイルをローカルで管理するには、ソース コード管理システムを使用することをお勧めします。
私は、本番環境と同じ環境を持つ開発マシンで開発しています。これにより、バージョンまたは構成が異なるために、いくつかの異なる動作が妨げられます。終了後、すべてのファイルを本番サーバーに移動します。
Winmergeは、開発マシンと運用マシンの間でファイルを比較するための優れた無料の Windows ツールです。
おそらく古い投稿をリダイレクトすると非難されるでしょうが、無料のツールを使用してそれを行う方法は次のとおりです。
Netbeans、Git、bitbucket、ソース ツリー、gitflow、FTPloy を使用しています。
Bitbucket.com : 無料アカウントにサインアップします。SourceTree: bitbucket から無料。git リポジトリを管理するための優れたツール。すべてのコミット、マージ、プルはここで実行できます。bitbucket の問題を追跡できます。
sourcetree で master ブランチを取得し、「git flow」をクリックします (google gitflow)。これは機能、ホットフィックス、開発、およびリリース ブランチの素晴らしいワークフローであり、sourcetree はプロセスの自動化に役立ちます。
FTPloy.com は、マスター ブランチの展開を自動化します。無料は 1 つのレポ/サーバーです。ただし、テストのために開発ブランチをサーバー サンドボックスにプッシュする場合は、アップグレードする価値があります。
これが誰かがウェブを検索するのに役立つことを願っています!
変更されたファイルとそうでないものを追跡するために、バージョン管理システム (私は SVN が好きです) を使用して、開発環境 (つまり、apache mods、php 拡張機能など) とまったく同じ構成でローカル マシンで開発します。
次に、本番環境またはテスト環境でスクリプトを記述して、ファイルをリポジトリから Web サーバー パスにコピー/更新できます。