完全な機能の答えを書く時間はありません(私はラメのようなものを知っています)が、とにかく共有する価値があります(これについてもブログ投稿を計画しているので、これを編集するかもしれません):
これは、トランク/バージョンブランチベースのWPセットアップを使用して、完全にハックできることを意味します。テーマとプラグイン。
これは1つの独立した(ローカル)リポジトリであるため、sshを介して他のリポジトリにプッシュすることができます。例:
- これは、サイトを展開するリモートホスト上にあります(ベアリポジトリ)。
- これには、そのホスト上の別のリポジトリを、プッシュした変更に実際にマージするためのフックがあります。
これは、Web中心のGitワークフロー(2008年11月、Joe Maller著)で概説されています。
wp-config.php
実行中のシステムに基づいて具体的な構成を選択する構成スイッチャーがある場合は、レポ内のすべてのホスト(開発、ライブ、ステージング、フレンドなど)を一元的に構成することもできます。
WPでの上流の変更は、サブツリーでフェッチしてマージするだけです。
更新してコミットするだけのプラグイン。
展開は簡単$ git push remote
です。
gitリポジトリ、データベース、アップロードされたファイルのリモートホストで毎日バックアップを実行します。これは安価で、開発者にとって使いやすく、柔軟性があります。これは、開発者が1人でも小規模チームでもうまく機能します。これは、誰でもリモートの裸の再現からチェックアウトできるためです。
いくつかの注意事項があります:
次に、上記で概説したチェックリストとセットアップを行います。
1.リポジトリの処理にGithubを使用せずに、自分のサーバーにgit環境を内部的に配置したい。
Githubは、ここではアップストリームリポジトリ(Wordpress)のみを処理し、独自のリポジトリは処理しません。
2. gitブランチ作成時のサブドメインの自動作成(development.domain.com、ryan.development.domain.com)-おそらく、これにはいくつかのシェルスクリプトフックが理想的です。
概説されているセットアップは、サイトごとに1つのリポジトリを持つモジュール式のアプローチです。必要な数の開発ホストを処理できます。複数サイトをインストールするマルチサイトインストールでも同様に機能する可能性がありますが、このアプローチでは1つのワードプレスセットアップとしてカウントされます。
3. Phing PHP / Shellスクリプトdb移行の処理(http://interconnectit.com/products/search-and-replace-for-wordpress-databases/のようなもの)プッシュ時のシリアル化されたデータベース置換を処理する
コードはバージョン管理下にあり、データベースは開発(ステージング)と実稼働の間で独立している必要があるため、ここでは必要ありません。
ドメインの移行を正しく実行するインストールスクリプトを探しているかもしれませんが、シリアル化されたデータの検索と置換を処理するより優れたコード(使用可能な場合)でも、このセットアップでは、変更をプッシュするだけで通常は必要ありません、テストケースの場合、開発データベースにコンテンツをすばやく作成できます。これは通常、最小の問題です(私の実際の経験からは異なる場合がありますが、そのようなデータベース移行関連のトピックについては、ここでサイトを所有している-しかし彼らに尋ねてください)。
私は自分のサーバーで約200のサイトを実行していますが、これらのサイトを強力なgitワークフロー環境に実装し始めて、作業を大幅に効率化したいと考えています。
文字列gitワークフロー環境でこれらのサイトがどのようになるか想像できません。ここで管理する構成スクリプトと構成データは、おそらくgitバージョン管理下に置かれます。それは理にかなっています。それ以外の場合、サイトの量が多いため、すべてのサイトを1つのgitリポジトリに保持することはまったく意味がないと思います。上記の概要は、インストールタスクだけでなく、開発するサイト(WPコアコードを含む)向けであるため、おそらくこれらのいずれでもありません。そのため、おそらくまず200個のサイトの小さなマップを作成し、それらがどのように相互作用し、それらのサイトがどのパッケージ(WPコア、プラグイン、テーマ)から構成されているかを確認する必要があります。まず、スプレッドシート/マトリックスを作成し、すべてのサイトを配置することができます。
その後、CSVとして保存し、バージョン管理下に置き、展開スクリプトにそのファイルに基づいて作業を行わせることができます。
タスクを自動化することで何かを学んだ場合:Unixの哲学に従い、既存の適切に機能するツールを使用します(ほとんどのジョブでは問題が発生しているため、一部のコマンドについて半日読んでから代替を検索することをお勧めします)既に解決済み)、コマンドラインツールに焦点を当てています。それらは最も強力です。