開発、テスト、リリース


10

Wordpressサイトをどのように開発し、テストし、デプロイして有効にしますか?

特にデータベースが関係している場合は特に、私が見つけることは常に少し問題があります。主に、テストサイトでは、まったく新しいデータベースを展開する必要があるため、すべてのリンクがライブサイトではなく、テストサイトのURL。

同様に、最後にバグを修正したり何か新しいものを開発したりする必要があるときにユーザーがアップロードしたアップロードは、テストサイト全体にコピーする必要があります。

他の人はそれをどのように行うのですか?あなたはただのに我慢していますか?役立つバージョン管理システムを使用していますか?

ありがとう


hostsファイルの変更を中心にシステムを構築する場合、テストDBをいじくり回す必要はありません。(wordpress.stackexchange.com/a/10943/9142
アレクサンダー・バード

回答:


12

導入ワークフローには、個人的な考え方が少しあります。サーバーやバージョン管理の経験、オペレーティングシステム、ホスティング、クライアントの経験、技術文化などを知らずに完全に答えるのは簡単な質問ではありません。

  1. これは多くの説明がある同様の質問です。
  2. コンテンツの展開については、Crowd FavoriteのRAMPプラグインをチェックしてください。
  3. WP Hackersは、展開に関する適切な情報を見つけるための優れたスレッドです。

個人的には、絶対URLをテーマにハードコーディングしないようにしています。bloginfo()を使用するか、相対URLをコーディングします。私はwp-config.phpファイルで多くの条件を使用しています。これが私のwp-config編集のバニラバージョンです。

switch($_SERVER['SERVER_NAME']){
    case 'dev.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        //define debugging
        break;
    case 'stage.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        break;
    default: //Live
        $db_host = '';
        $db_pass = '';
}
define('DB_PASSWORD', $db_pass);
define('DB_HOST', $db_host);

//You could also set this as a variable above
define('WP_HOME', 'http://'.$_SERVER['SERVER_NAME']));
define('WP_SITEURL', 'http://'.$_SERVER['SERVER_NAME']));

私は次の多くのサイトで働いています

  • ローカル(パーソナルハッキング:)私のラップトップWebサーバー)>
  • dev(クライアントサーバーでテスト)>
  • ステージ(QAの安定したソース-コンテンツ編集)>
  • 制作(ライブサイト)

最後に、バージョン管理ツールを使用して、GITやSVNなどのデプロイメントを支援することをお勧めします。プロセスを大幅に簡素化し、環境間のソースの整合性を維持します。ローカルへのコミットは、ステージとプロダクションのコマンドラインを介して簡単に更新されます。ディスカバリー中に、プロジェクトに取り組んでいる開発者がいる場合、あなたとクライアントが最初からどのバージョン管理を使用するかを定義するのが最善です。私は自分のバージョン管理にGITを使用しています。ただし、クライアントがSVNを使用している場合は、ローカルで2つを混在させるため、自分のリポジトリを維持しながら、そのリポジトリにもコミットします。

ある環境から別の環境への移行で問題が発生することはほとんどありません。DBで検索/置換を行い、埋め込みメディアなどに応じてURLを変更します...


これはとても便利です!:) どうもありがとうございました。では、さまざまなサーバーに展開するたびに、ライブサイトからデータベースを複製しますか?QAとコンテンツ編集のためにステージングサーバー(stage.domain.com)にデプロイするとします。ライブサイトでステージサーバーを実行しているときにデータベースが変更されるとどうなりますか?つまり、あなたまたはあなたのクライアントがステージにログインし、一部のコンテンツを更新しますが、同時に貢献者がライブサイトに新しい記事を投稿しますか?ライブサイトでコンテンツの編集を再開しますか?データベース構造の変更にどのように取り組みますか?
Thomas Clayson、2011

すべての質問について申し訳ありません!:p私はあなたの時間と助けに非常に感謝しています。
Thomas Clayson、2011

新しい機能セットでは、prod>ステージからプルできます。次に、新機能のコンテンツを追加し、ステージを押し戻します>製品。そこから、stageはprodの高忠実度コピーであり、stage> devをプルできます。DBをステージから戻すことはあまりありません。機能がdbアーキテクチャを変更しない限り、DBとの交換の大部分はステージから製品へと行われます。
Brian Fegter、2011

コンテンツのデプロイにステージを使用し、製品に触れない場合は、以前に投稿したRAMPプラグインをチェックしてください。
Brian Fegter

上記のすべてを+1します。ただし、いくつかの苛立たしいプラグインは、URLを直列化された配列に格納することを要求します。問題は、シリアル化された配列が文字列の長さを格納し、長さが変更されると失敗することです。したがって、可能な限り、envのドメイン名を同じに保つことをお勧めします。たとえば、dev.example.com、tst.example.com、www.example.comなど
webaware
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.