web-dev-qa-db-ja.com

Wordpress Gitワークフローヘルプ

私はWordpressで作業するための強力で合理化されたワークフローのアイデアを探しています。

  1. レポジトリの処理にGithubを使用しないで、自分のgit環境を内部の自分のサーバー上に置きたいです。
  2. Gitブランチ作成時のサブドメインの自動作成(development.domain.com、ryan.development.domain.com) - おそらくこれにはいくつかのシェルスクリプトフックが理想的です。
  3. Phing PHP/Shellスクリプトデータベース移行の処理(このような http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ )。

操作はおそらく次のようになります。

  1. 現在の最新のワードプレスバージョンを取得してそれを分岐し、分岐の名前はサブドメインエントリを取得します(branchdevelopment.domain.com)
  2. 利用可能であれば、あなたが望むテーマをサブモジュール化してください(私はこの論文のために自分のgitリポジトリを作りたいのですが、既に作成されているサーバーの内部から取得するために空白の論文gitリポジトリを設定したいです)
  3. チェックアウトして変更を加える、クライアントによるレビュー、ライブにプッシュされると、データベーススクリプトは自動的にシリアル化されたURLの値をローカルホスト(またはサブドメイン)からライブURLに変更します。

これは可能ですか? Capistranoもこれを利用するのに適していると聞いていますが、Capistranoが完全に機能するかどうかはわかりません。

私は自分のサーバー上で約200のサイトを運営しており、これらのサイトを強力なgitワークフロー環境に実装し始め、作業をより効率的に行えるようにしたいと考えています。現在のところ、私は基本的にサイトのイメージをダウンロードしてローカルで作業してから変更をサーバーにアップロードします。これはこの日と年齢で非常に退屈です。

誰かがこのタイプのワークフローに関して何か解決策を持っていますか/過去にこれで働いたことがありますか?もしそうなら、いくつかのリソース/答えは大歓迎です。

16
Ryan Dennler

一般的な質問に答えました

Nr.1。リポジトリを処理するためにGithubを使用せずに、自分のサーバーにgit環境を内部的に配置したいです。

最初にやることは、 composerと、WordPress での動作を確認することです。これは、 Andrey "@ Rarst」Savchenko

Nr.2。gitブランチ作成時のサブドメインの自動作成(development.example.comryan.development.example.com)-おそらくいくつかのシェルスクリプトフックがこれに最適です。

これはこのサイトの範囲外です。 StackOverflow で助けを求めるか、ホスティング業者に尋ねてください。一部のホスティング事業者は、これらのエントリを自分で編集することを許可していません。

Nr.3。Phing PHP/Shellスクリプトdb移行の処理(このようなもの http:// interconnectit .com/products/search-and-replace-for-wordpress-databases / )プッシュ時にシリアル化されたデータベースの置換を処理する

マルチサイト/ネットワークインストールをセットアップします。これにより、すべてのテーブルを簡単に管理したり、ユーザーを集中管理したりできます。

WP Gear - Robert "@Wyck" Ellisonによるプロジェクト -代替ビルドスクリプトのリストがあります。 WordPhing を含む。 @TomJNowells /Interconnect.it script これまでのところ、そのリストにはありません。

操作に関する質問の回答

Nr。 1。現在の最新のwordpressバージョンを取得してそれを分岐します。分岐の名前はサブドメインエントリを取得します(branchdevelopment.domain.com)

これを行う理由がわからない:各ブランチのサブドメイン。同期された WordPress GitHubリポジトリ および ブランチのリスト を見ると、ブランチの名前はX.Y-branchです。したがって、サブドメインは、たとえば3.6-branch。サブドメインが数字で始まることを許可されているかどうかはわかりませんが(そうする必要がありますが、あなたのホスティング業者に尋ねてください)、サブサブドメインを持つ6-branchという名前のサブサブドメインを取得するという問題があります3という名前と別の2という名前。そして、サブドメイン内のpairing2-および3-versionブランチは、あなたが達成したいものではないと思います。

つまり、ブランチを切り替える必要がある場合はcheckout 3.6-branchだけです。

Nr.2。サブモジュール使用可能な場合は、必要なテーマ(このために自分のgitリポジトリを作成したい。 dすでに作成されているサーバーの内部から取得するために、空の論文gitリポジトリのセットアップが必要です)

Thomas "@toscho" Scholz は、サブドメインを使用してWordPressディレクトリ以外のテーマを処理できるNiceプラグインを作成しました。 this answer および in this one にあります。 WP 3.6以降のテーマでは、自動更新でさえ機能します。

wp-config.phpファイルに次の定数を設定するだけで、MUプラグインとプラグインに同じことができます。

define( 'WP_PLUGIN_DIR',   'path/to/your/plugins.dev/folder/plugins' );
define( 'WP_PLUGIN_URL',   'https://plugins.dev/plugins' );
define( 'WPMU_PLUGIN_DIR', 'path/to/your/plugins.dev/folder/mu-plugins' );
define( 'WPMU_PLUGIN_URL', 'https://plugins.dev/mu-plugins' );

次に、すべてのプラグインとテーマをバージョン管理下に置き、それらをサーバーにプッシュします。 muプラグインまたはネットワークをアクティブにするデフォルトプラグインを使用して、それらすべてを簡単に使用可能にすることができます。

Nr.3チェックアウトして変更を行い、クライアントのレビューを行い、ライブにプッシュされると、データベーススクリプトはローカルホストからシリアル化されたURL値を自動的に変更します(またはサブドメイン)をライブURLに

Tomsスクリプト/プラグインがこれまでに役に立たない場合は、 がGitHub でプルリクエストを受け入れることを通知されます。

6
kaiser

全機能の答えを書く時間がない(私はちょっとしたラメを知っている)が、とにかく共有する価値があるだろう(私もこれについてブログ記事を書く予定なのでこれを編集するかもしれない)

  • 私はクローンを作成しています GithubのWordpress (ここからソースツリーに対してもこれを行うことができます: tierra/wordpress

  • それから私のサイトレポジトリで subtree merge を介してそれを使います(私はgitのバグにも遭遇しますが解決策はここにあります: -X subtree = ... )。

つまり、トランク/バージョンブランチベースのWPセットアップを使用して、inclを完全にハックすることができます。テーマとプラグイン.

これは1つの独立した(ローカルの)リポジトリなので、ssh経由で他のリポジトリにプッシュすることができます。

  • それはサイトが配置されるべきリモートホストにあります(裸のリポジトリ)。
  • それは、そのホスト上の別のリポジトリを実際にプッシュしたばかりの変更にマージするためのフックを持っています。

これは Web中心のGitワークフロー(2008年11月、Joe Maller著) で概説されています。

それから、実行中のシステムに基づいて具体的なwp-config.phpを選択する設定スイッチャーがあれば、リポジトリ内のすべてのホスト(開発、ライブ、ステージング、友達など)を集中的に設定することもできます。

WPの上流での変更は、サブツリーを取り出してマージするだけです。

更新してコミットするだけのプラグインです。

展開は単純な$ git Push remoteです。

Gitリポジトリ、データベース、アップロードされたファイルのためにリモートホスト上で毎日バックアップを実行してください。これは安く、開発者に優しく、そして柔軟です。誰でもリモートのベアリプロからチェックアウトできるので、これは小さな開発者チームと同様に単一開発者セットアップのためにうまく働きます。


注意点がいくつかあります。


上記のようにチェックリストと設定を確認してください。

1.レポジトリの処理にGithubを使用しないで、自分のgit環境を内部の自分のサーバー上に置きたいです。

Githubはここでアップストリームレポジトリ(Wordpress)のみを扱い、あなた自身のレポジトリは扱いません。

2. gitブランチ作成時のサブドメインの自動作成(development.domain.com、ryan.development.domain.com) - おそらくこれにはいくつかのシェルスクリプトフックが理想的でしょう。

概説されているセットアップは、サイトごとに1つのレポを持つモジュール方式です。それはあなたが好きなだけ多くの開発ホストを扱うことができます、それは複数のドメインを扱うためにマルチサイトインストールで同様にうまくいくかもしれません、しかしそれはこのアプローチで一つのワードプレスセットアップとして数えられるでしょう。

3. Phing PHP/Shellスクリプトデータベース移行の処理(このような http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ )_データベースの置き換えを処理する押すと

コードのみがバージョン管理下にあり、データベースは開発(ステージング)と運用の間で独立しているため、これは必要ありません。

ドメイン移行を正しく行うインストールスクリプトを探しているかもしれませんが、シリアル化されたデータの検索と置換を扱うより優れたコード(利用可能)でも、変更を有効にするだけなので通常は必要ありません。テストケースでは、開発用データベースにコンテンツを素早く作成することができます。通常、これは最小の問題です(私の実際の経験からすると、あなたのものとは異なる場合があります)。ここで所有しています - でも聞いてください。

私は自分のサーバー上で約200のサイトを運営しており、これらのサイトを強力なgitワークフロー環境に実装し始めたいと思います。

これらのサイトがどのようにして文字列gitワークフロー環境になるのか想像できません。おそらくあなたがここで管理する設定スクリプトと設定データはgitバージョン管理下に置かれるでしょう。それは意味があるかもしれません。それ以外の場合、膨大な数のサイトで、すべてのサイトを1つのGitリポジトリに保存するのはまったく意味がないと思います。私が上記で概説したのは、インストール作業だけでなく、開発したサイト(WPコアコードを含む)向けであるため、おそらくそのうちの1つでさえありません。ですから、まず最初にそれら200のサイトとそれらがどのように相互作用するか、そしてそれらのサイトを構成するパッケージ(WPコア、プラグイン、テーマ)から自分自身の小さなマップを作成する必要があるでしょう。まず最初に、スプレッドシート/マトリックスを作成し、すべてのサイトをその中に配置します。

それをCSVとして保存し、それをバージョン管理下に置き、そのファイルに基づいてデプロイメントスクリプトに作業を行わせることができます。

自動化タスクで何かを学んだことがあるならば:Unixの哲学に従い、既存のうまく機能しているツールを使用する(いくつかのコマンドについて読んでから、代替案を探すことを試みるほうがよいでしょう)。コマンドラインツールに集中してください。それらは最も強力です。

3
hakre