どのようにして3つの異なるWordpressインストールを3つの異なるサーバにセットアップするのですか。それらはすべて1つのデータベースに接続し、同じデータを共有しますか?
3つの異なるサーバーをセットアップしたいのですが。開発、QA /ステージング、そしてプロダクションのためのもの。各サイトは他のサイトから分離されている必要があり、データベースから同じデータを表示するために使用されています。
「アップロード」リソースを共有することは問題ではないことをご了承ください。AWSS3サービスを使用してすべてのリソース(画像など)を保存する予定です。 CDNは、上記のすべてのリソースを提供します。
私の提案を詳しく説明するために、これはいくつかの実用的なコードです。
// hook in before theme is loaded
add_action('plugins_loaded','custom_maybe_switch_themes');
function custom_maybe_switch_themes() {
if (!is_user_logged_in()) {return;}
if (!current_user_can('manage_options')) {return;}
// check for query request eg. ?usertheme=theme-slug
if (isset($_REQUEST['usertheme'])) {
// sanitize request
$usertheme = strtolower(sanitize_title($_REQUEST['usertheme']));
global $current_user; $current_user = wp_get_current_user();
// maybe reset user meta stylesheet
if ($usertheme == 'reset') {delete_user_meta($current_user->ID,'stylesheet'); return;}
// validate theme
$theme = wp_get_theme($usertheme);
if ($theme->exists()) {
delete_user_meta($current_user->ID,'stylesheet');
add_user_meta($current_user->ID,'stylesheet',$usertheme);
}
}
}
// add filter to stylesheet option
add_filter('pre_option_stylesheet', 'get_user_stylesheet');
function get_user_stylesheet($stylesheet) {
if (!is_user_logged_in()) {return $stylesheet;}
if (!current_user_can('manage_options')) {return $stylesheet;}
// check user meta stylesheet
global $current_user; $current_user = wp_get_current_user();
$userstylesheet = get_user_meta($current_user->ID,'stylesheet',true);
// if we have a value use it instead
if ($userstylesheet) {return $userstylesheet;}
return $stylesheet;
}
ユーザーベースでテーマに切り替えるには、?usertheme=theme-slug
を使用します。
...そしてリセットするには?usertheme=reset
を使うだけ
すべてのテーマコードはが使用されるスタイルシートに依存してロードされるので、Live、Staging、DevelopmentのChild Themesディレクトリを(同じ親テンプレートで)設定して切り替えることができます。開発者としてのテーマは非常に簡単で、同じドメインですぐに結果が表示されます。 :-)
私が考えることができる唯一の警告は主要なプラグインアップデートをテストすることです、あなたはまだその目的のための開発環境を必要とし、そしておそらくそれらを現在のデータベース内容でテストするためにデータベースを同期させるでしょう。これは、オプションデータベースのテーブル構造を変更するかどうかがわからないからです(実際にはこのようにして壊れる可能性があるため、戻ることはありません)。
ログアウトしたユーザーのサイト出力をテストするには、さらに何かが必要ですが、これは一時的な負荷の場合は別のクエリ文字列を使用するか、ユーザーの代わりにcookieを使用します。同様の永続的な結果を得るにはmeta。
いずれにしても、開発中のテストと同じドメインでのステージングのためにコードスニペットをファイルに編成できるので、両者の間で新しい変更をプッシュすることが非常に簡単になり、データベースの同期について常に心配する必要がなくなります。実行可能なアプローチ)は、これを私が考えることをするのに非常に便利な方法にします。
開発者用およびQA用のインストールにサブドメインを使用できます。 qa.domain.comやdev.domain.comなど。サブドメインが作成されると、通常サブディレクトリも作成されます。各サブドメインディレクトリに追加のワードプレスをインストールできます。それから2つの追加データベースを作成します。本番データベースをバックアップし、それを2つの新しいデータベースにロードします。これらの新しいデータベース用にconfig.phpファイルを設定すると、2つの新しいサーバーができます。データベースを更新する必要があります。 _optionsテーブル内の少なくとも2つの場所homeとsite_url。私は通常.sqlファイルをテキストエディタで開き、domain.comを探してsub.domain.comに置き換えます。