エックスサーバ上のWordPressをSSL化した時のメモ。大量の置換はSearch Regexでは無理でした。

スポンサーリンク
スポンサーリンク

このサイトはエックスサーバで動かしています。価格が安く、サーバーレスポンスもよく、データ転送量も申し分ありません。

 

僕がエックスサーバを選んだ理由

僕は一番安いX10プランを利用させてもらっていますが、料金は3ヶ月で3,600円、12ヶ月だと12,000円(ひと月あたり1,000円)、最長の36ヶ月払いだと32,400円(ひと月あたり900円)ととてもお安い料金体系になっています。

最近は格安レンタルサーバも増えてきていますが、エックスサーバは高速なサーバを使っているのでレスポンスがとてもいいです。以前別のレンタルサーバを使っていましたが、このサイトのように画像が多く記事数も多いサイトだと表示するまでに数秒かかるようになってしまったのでエックスサーバに引っ越してきたんです。

一番いいところはディスクスペースが多いこと。僕のサイトは10GBくらいあるのですが、X10プランでも200GBもあります。ここまで大容量のディスクを月額1,000円程度でレンタルできるところは他にないと思います。

データ転送量も十分です。一応「無制限」になっていますが、X10プランだと概ね1日70GBだそうです(以下、エックスサーバのFAQより)。

Q:転送量課金はなしとありますが、転送量がどれだけ増えてもいいのですか?

A:データ転送量の課金はありませんが、ネットワークやサーバーに対して過大な負荷が掛かる場合には、制限を行う場合があります。
各プランの転送量の目安数値は下記の通りです。

各プランにおける転送量の目安
X10 X20 X30
70GB/日 90GB/日 100GB/日

 

エックスサーバ上のWordpressをSSL化する

さて、エックスサーバでは昨年から無料独自SSLサービスが開始されました。正直、設定変更するのには記事数が多いのでやらない予定だったんですが、googleさんは2014年からSSLを推奨しているので(対応する必要なしという意見も多数ありますが)、勉強を兼ねてやってみました。

エックスサーバでSSLの設定をする

まずはエックスサーバでSSLの設定をします。

サーバーパネルにログインして設定したいドメインを選択します。その後「ドメイン」ー「SSL設定」をクリックします。

そうすると「SSL設定」画面になるので「独自SSL設定の追加」から設定対象ドメインを選択して「独自SSL設定を追加する」ボタンをクリックします。

約一時間ほどでhttpに加えhttpsがつかえるようになります。

変更前にバックアップをとっておく

WordPressに限ったことではないですが、システムに大きな変更をする前は必ずバックアップを取っておいたほうがいいです。

今回は記事中のURLを書き換えるのでMySQLのデータベースに手を加えることになります。

「BackWPup」などのツールを使って少なくともデータベースのバックアップは取っておくことをお勧めします。

WordPressでhttpsの設定をする

SSLがつかえるようになるまで約一時間かかるので、その間にサイトの設定をします。

まずはWordpressのダッシュボードにログインして「設定」ー「一般」にある「WordPress アドレス (URL)」と「サイトアドレス (URL)」を「http://~~」から「https://~~」に変更します。

ただ、これはパーマリンクが変更されるだけなので、記事中のURLは変わりません。そこで記事中の文字列を置換する必要が出てきます。

WordPressの全文置換プラグイン「Search Regex」をインストールする

WordPressで記事内の文字列を一気に全文置換するなら「Search Regex」がオススメです。設定も簡単で、今回であれば「http://」を「https://」に置換するだけ。

早速インストールしてやってみたところ、なんとエラーが!!

「Search Regex」のエラー

「http://etc.miscmemo.com/」を「https://etc.miscmemo.com/」に置換しようとサーチしたところ、件数が27,882件。これを置換すると、

Fatal erroor:Allowed memory size of ~~bytes exhausted ~~

つまりメモリ不足のエラーです。件数が多いと置換することが出来ないようです。

ここのサイトは記事数が1,000記事以上あり、画像や内部リンクが多数貼ってあるのでエラーになってしまいました。

別のサイトは100記事程度で、そちらは問題なく「Search Regex」で置換できました。

データベースを直接置換するスクリプト「Search And Replace」を使ってみる

WordPressの領域にインストールしてMySQLの中身を直接変更できる「Search and Replace for WordPress Databases Script」を使ってみました。

置換ツール「Search And Replace」をダウンロードする

Search and Replace for WordPress Databases Scriptをダウンロードします。

2017年3月現在、バージョンは3.1.0でした。

するとZIPファイルがダウンロードされるのでパソコン内で解凍します。

「Search And Replace」をアップロードする

解凍されたらフォルダごとWordpressのインストール先にFTPなどのツールを使ってアップロードします。

僕はWinSCPを使っています。

ブラウザで「Search And Replace」に接続する

コピーしたらブラウザで以下のURLにアクセスします。

http://ワードプレスのトップページ/Search-Replace-DB-master/

すると、ツールの画面が出てきます。

通常だとwp-config.phpを読んでくれて、データベース名やユーザー名、パスワード、ホスト名などが表示されます。

[replace]に変更したい文字列、[with]に変更後の文字列を入力します。[use regex]にチェックを付けると正規表現も使えるようです。

tablesはデフォルトで[all tables]になっているので特に変更する必要はないと思います。

僕の場合は、

[replace]が「http://etc.miscmemo.com」

[with]を「https://etc.miscmemo.com」

にしました。

「dry Run」でリハーサルする

「Dry Run」ボタンをクリックすると変換するテーブルやその数などが表示されます。

「view changes」の文字列をクリックすると実際に変更する内容が表示されます。

「live Run」で本番変換!

「live Run」をクリックすると実際にデータベースの内容を更新します。

「delete me」で「Search And Replace」を削除する

作業が終了したら「delete me」ボタンで「Search And Replace」を削除します。

確認画面が表示されますので「OK」ボタンをクリックします。

その後サンクス画面が表示されますがそのまま閉じてOKです。

このツールはとても便利ですが、セキュリティは考慮されていません。

「Search-Replace-DB-master」フォルダを残したままにしておくと誰でもアクセスできてしまい、MySQLの情報が丸見えになります。作業が終わったら早急に削除しましょう。

.htaccessにリダイレクト用のコードを追記する

以上の作業でサイトはhttpsになりましたが、古いURL(http://)でアクセスしてくるユーザーもいるでしょう。そのためにURLの転送(リダイレクト)設定をします。

WordPressのインストール先にある「.htaccess」に以下の文字列を追加します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>

Google AnalyticsでURLを変更する

サイトのURLが変更になったので、Google AnalyticsにログインしてURLを変更します。

変更したいサイトの「プロパティとビュー」ー「すべてのウェブサイトのデータ」を開いて下にある「管理」をクリックします。

「プロパティ設定」の画面になるので「デフォルトのURL」を「http://」から「https://」に変更して「保存」ボタンをクリックします。

Google Search Consoleで新しいサイトとして追加

次は「Google Search Console」にログインします。こちらのサイトは「変更」することが出来ないので、「http://」のサイトを「削除」して「https://」を新しいサイトとして「追加」します。

「プロパティの追加」ボタンをクリックして新しいサイトを追加します。

所有権の確認画面が表示されます。通常は前回やった方法のままでいいので「続行」ボタンをクリックします。

「所有権が確認されました」と表示されるので「続行」をクリックします。

「サイトマップがありません」と表示されますのでクリックします。

「サイトマップの追加/テスト」をクリックします。

「sitemap.xml」と入力して「送信」ボタンをクリックします。

「アイテムを送信しました」と表示されますので「ページを更新する」をクリックします。

サイトマップインデックスが表示されればOKです。

次に「Google Analytics」に戻り、プロパティ設定にある「Search Consoleを調整」ボタンをクリックします。

「Search Consoleの設定」画面になるので「編集」をクリックします。

対象のサイトを選択して「保存」ボタンをクリックします。

確認画面が表示されますので「OK」ボタンをクリックします。

以上で全作業が終了です。なかなか大変でしたが、なんとかSSL化が出来ました!!

 

コメント

タイトルとURLをコピーしました