WordPressサイトの公開後のプログラム変更は、サイトダウン等の危険性があるので難しくなります。
そこで、私が行っている開発環境を利用したプログラム変更方法をご紹介します。
尚、下記文書の「nw.myds.me」は、貴方のURLに置き換えてお読み下さい。
1.通常のWordPress環境
私の「nw.myds.me」のWordPressの環境は下図の様になっています。
■このサイトのコンテンツ更新は「ローカルPC」から「公開サーバ」にアクセスして行っています。
・DNSサーバの「nw.myds.me」は「公開サーバ」のIPアドレスを指しています。
・公開サーバのSSL証明書には「nw.myds.me」が定義されているのでhttpsアクセスができます。
・「nw.myds.me」は、公開サーバの「Web Station」の仮想ホスト機能で「oldies」フォルダに転送しています。
しかし「nw.myds.me」の大幅なプログラム変更は公開サーバがダウンしてしまう危険性があるのでこの環境では実施していません。
2.プログラム変更する場合のWordPress環境
下図は公開サーバはそのまま、開発サーバで大幅なプログラム変更ができる構成です。
■本番環境の「nw.myds.me」は変更がないので、そのままサービスを続けています。
■サイトのプログラム変更は「ローカルPC」から「開発サーバ」にアクセスして変更しています。
・最新の「oldiesフォルダ」と「oldiesDB」を「開発サーバ」にコピーします。
・DNSサーバの「nw.myds.me」は「開発サーバ」のIPアドレスに一時的に変更します。
・開発サーバのSSL証明書に「nw.myds.me」を「サブジェクトの別名」で追加します。
これで開発サーバでも「https://nw.myds.me」が利用できる様になります
・開発サーバの「Web Station」の仮想ホスト機能で、「nw.myds.mee」は「oldies」フォルダに転送する定義を追加します。
■上記の開発環境で
・phpプログラム自体の変更
・プラグインの追加/削除
を行いプログラム修正後は元の状態に戻しています。
下記に上記の開発環境の構築手順を紹介します。
3.開発環境の構築手順
1.DNSサーバの「nw.myds.me」の転送先アドレスを「開発サーバ」に変更する。
【変更後の挙動】
ローカルPCから「https://nw.myds.mes」でアクセスすると、まだ「公開サーバ」が動くはずです。
理由は「PCのDNSのキャッシュ」が残っている為です。
①PCの下図の「コマンドプロンプト」を起動します。
コンソールで下記コマンドを入力します
ipconfig /flushdns
以上でPCのdnsキャッシュはクリアされましたが、まだブラウザのキャッシュが残っています。
②ブラウザを終了して、再起動します。
以上で「https://nw.myds.me」をアクセスすると「oldies」フォルダがまだないのでエラーになりますがDNSサーバの転送が正常に機能している事が判ります。
2.開発サーバのSSL証明書の変更
①80、443でアクセスできるサーバで「開発サーバのSSL証明書」を作成します
この時、「サブジェクトの別名」に「nw.myds.me」を追加します。
②作成したSSL証明書をエクスポートして、開発サーバに取り込みます。
操作方法は「SSL証明書のエクスポート/インポート」を参照してください
以上で開発サーバでも「https://nw.myds.me」でアクセスできる様になります。
3.公開サーバの「oldiesフォルダ」を開発サーバにコピーします。
①File Stationで「oldies」フォルダを右クリックして圧縮ファイルを作成します。
②上記で作成された圧縮ファイルを「開発サーバ」に移動します。
③開発サーバで上記ファイルを解凍します。
以上で開発サーバにWordPressのプログラムが作成されました。
4.公開サーバにある「oldiesDB」を開発サーバにコピーします。
①公開サーバのphpMyAdminでログインします。
「oldies」DBを選択後、「簡易」形式でDBをエクスポートします。
②開発サーバのphpMyAdminでログインします。
・DBの作成で「oldies」DBを作成します。
・インポートで「ダウンロードフォルダ」にあるsqlファイルをインポートします。
以上で開発サーバにDBが作成されました。
5.公開サーバのWeb Staionの仮想ホスト機能の定義を開発サーバにも適用させます。
以上で「https://nw.myds.me」でアクセスし、画面が表示されれば「ローカルPC」から「開発サーバ」アクセスが可能になった証拠です。
この環境でプログラム変更を行います。
4.プログラム修正後、本番環境に戻す方法
1.開発サーバの「oldies」フォルダを公開サーバにコピーします。
①File Stationで「oldies」フォルダを右クリックして「圧縮ファイル」を作成します。
②上記で作成された圧縮ファイルを「公開サーバ」に移動します。
※まだ解凍はしません。
2.開発サーバにある「oldies」DBを公開サーバの「oldies_1」にコピーします。
①開発サーバのphpMyAdminでログインします。
「oldies」DBを選択後、「簡易」形式でDBをエクスポートします。
②公開サーバのphpMyAdminでログインします。
・DBの作成で「oldies_1」DBを作成します。
・インポートで「ダウンロードフォルダ」にあるsqlファイルをインポートします。
※インポートにはかなりの時間が掛かりますので「oldies_1」に入れる事によりインポート中でも利用者は公開サーバを利用できます。
以上で新しいプログラムに切り替える準備が整いました。
3.本番環境の「oldies」フォルダを「_oldies」にリネームします。
この段階で初めてユーザはこのサイトの利用できなくなります。
4.本番環境の「oldies」DBを新しい物にします。
①本番環境のphpMyAdminにログインします
②「oldies」DBを選択します。
③「操作→DB名の変更」で「_oldies」にリネームします
④「oldies_1」DBを選択します。
③「操作→DB名の変更」で「oldies」にリネームします
以上でDBは新しい物に変更されました。
5.「oldies」zipファイルを解凍します。
解凍が完了するとユーザからのアクセスは新しいプログラムに変更されます。
この切替え方式だと、サイトのダウン時間は数分レベルで済みます。
ポイント①
phpプログラムの変更だけの場合は、DBのインポートは必要ありません。
よって切替時間は更に短くなります。
ポイント②
プラグインの追加/削除を行った場合は、DBのインポートが必要になります。
この時に一番時間が掛かるのがDBのインポートです。
よって別なDB名でインポートだけを行って、フォルダ名とDBのリネームで最新バージョンに切り替える事によりダウン時間を少しでも短くさせています。
最後にDNSサーバの転送先を基に戻す事を忘れないで下さい。