Wordpress Gitワークフローヘルプ


17

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

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

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

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

これは可能ですか?カピストラーノもこれを活用するのに良いと聞いたが、カピストラーノが完全に機能するかどうかはわからない。

私は自分のサーバーで約200のサイトを実行していますが、これらのサイトを強力なgitワークフロー環境に実装し始めて、作業を効率化できるようにしたいと思います。現時点では、基本的にサイトの画像をダウンロードしてローカルで作業し、変更をサーバーにアップロードします。これは、この日と年齢で非常に退屈です。

誰もこのタイプのワークフローに関する解決策を持っていますか/過去にこれで働いていましたか?もしそうなら、いくつかのリソース/回答をいただければ幸いです。


3
彼らは無料で無制限のリポジトリを持っているので、なぜbitbucketを使用しないのですか?
ブライアンフェッター

2
置き換える検索すると、githubのレポをチェックアウトする場合、私はそれに合格するためにあなたがさまざまなURLやパラメータを取得する方法にコメントすることはできませんが、あなたは、それを使用することができますCLIバージョンを持っている
トム・J Nowell

回答:


6

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

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

最初にやることは、作曲家と、それがWordPressどのように機能するかをチェックすることです。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 スクリプトは、このリストには含まれていません。

操作に関する質問の回答

番号 1.現在の最新のワードプレスバージョンを取得し、ブランチを作成します。ブランチの名前はサブドメインエントリを取得します(branchdevelopment.domain.com)

これを行う理由がわからない:各ブランチのサブドメイン。同期されたWordPress GitHubリポジトリブランチリストを見ると、すべてのブランチに名前が付けられていることがわかりますX.Y-branch。したがって、サブドメインは、たとえばの名前が付けられます3.6-branch。サブドメインを数字で開始するように許可されている場合、私はわからないんだけど(それが、しかし、あなたのホスティング業者に依頼する必要があります)、その後、あなたは、サブサブドメインが命名取得したいという問題がある6-branchという名前のサブサブサブドメインを持ち、3と別の名前が付けられ2ます。また、サブドメインで2バージョンと3バージョンのブランチをペアにすることは、達成したいことではありません。

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

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

Thomas "@toscho" Scholzは、サブドメインを使用してWordPressディレクトリ外のテーマを処理できる素敵なプラグインを作成しました。あなたはそれを見つけることができるこの答えだけでなく、この1に。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でプルリクエストを受け入れると言われます


2
このサイトに参加して2か月で、「マルチサイト/ネットワークインストールをセットアップしますがお気に入りの文であることを理解しました :)
gmazzap

@GM hehe :)はい、そうです。一般的に言えば、なぜ単一のサイトがあるのか​​さえ理解できません。ネットワークインストールでは、メインドメイン/サイトは実際に単一サイトのインストールとまったく同じです。その上にたくさんのオプションと可能性があります。
カイザー

一般的に言えば同意します。1つのサイトにインストールする理由は次のとおりです。1)サーバーアクセスの制限2)既存のコードの大部分(プラグイン、テーマ、スニペット)が適切に機能しないか、newtworkのインストールに問題があります。そのため、自分でコードを記述できない/できない場合で、実際にネットワークのインストールを必要としない場合は、単一のインストールを使用することが望ましいです。
gmazzap

1
トムズスクリプトが仕事をしない場合は、PHPでフル機能のシリアライズパーサが呼ば利用できるユーザランドがある直列化を
-hakre

@hakreいつものように:質問を編集してください:)
kaiser

3

完全な機能の答えを書く時間はありません(私はラメのようなものを知っています)が、とにかく共有する価値があります(これについてもブログ投稿を計画しているので、これを編集するかもしれません):

これは、トランク/バージョンブランチベースの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の哲学に従い、既存の適切に機能するツールを使用します(ほとんどのジョブでは問題が発生しているため、一部のコマンドについて半日読んでから代替を検索することをお勧めします)既に解決済み)、コマンドラインツールに焦点を当てています。それらは最も強力です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.