XREA新仕様サーバーリニューアルでのWordPressの不具合への対処方法

XREAがSSDをはじめとした大幅なリニューアルとなり、そのリニューアルにともない自動移行となったWordPressを使用したサイトでデフォルトテーマのエラーなど、移行時の問題かとも思われる症状もあったため、まずは正常利用に復旧するためにPHPのバージョンを戻して対応しました。

●Q4. PHP スクリプトが動かなくなりました。
デフォルトのPHPが、FastCGI版PHP5.3から、FastCGI版PHP7.0に変更となっております。
リニューアルにおけるサーバーシステムの増強と移行について | お知らせ一覧 | 無料から使える高機能・高品質レンタルサーバー | XREA(エクスリア)

PHP7.0からPHP5.3へ戻して対応。

WordPressについてはPHP7への対応を施されていますが、使用するプラグインなどによっては対応していません。
しかしながら、今回はデフォルトテーマがエラーとなっていたり、プラグインの使用をすべてやめても500エラーなどになってしまい、先述のとおりサーバーリニューアルがなにかしらのエラー原因となっていそうな状況でしたが、まずは復旧をするためにPHP5.3へ戻して対応することにしました。

PHP5.3への変更は「サイト設定」より。

XREAの新仕様のサーバーへマイグレーション時のWordPressの不具合への管理画面の対処箇所

こちらの「PHP」より選択して変更。

旧来のUI画面はこちら。

XREAの新仕様のサーバーへマイグレーション時のWordPressの不具合への管理画面(旧管理画面)の対処箇所

XREAを使わせていただいて10年となりますが、低価格で想像以上にカスタマーへの対応も早く、ちょっと心配していたGMOインターネット株式会社との資本・業務提携後もその対応は変わらず高評価のなかお世話になっています。
今回の件もその後の修正での質問などへも「利用側の問題」と切ってしまえるところを親切に返答いただいたりしました。
最終的な課題点の発見までは今回は時間的にも至りませんでしたが、それに向かう途中までは迅速にご返答などいただけました。

もしXREAのリニューアルでエラーなどが出ているようでしたら、プラグインや独自仕様されていモノの停止後、外部要因が当たらないようでしたらPHP5.3などの環境で原因追求までの時間をお作りするのもいかがでしょうか。

ムームードメインで取得したドメインをVALUE-DOMAINとXREAサーバーで設定・使用する方法

ムームードメインのネームサーバーの変更とVALUE-DOMAINでのドメイン登録・無料ネームサーバーの作成(利用)と新規登録ドメインのDNS設定、XREAの設定方法です。

少し前にVALUE-DOMAINの管理画面のUIがリニューアルされ使いやすくなりました。他のブログでもこういった設定方法は紹介されていますが、VALUE-DOMAINの新しい管理画面のサムネイルを使ったものが見当たりませんでしたので、今回せっかくなのでまとめてみました。

それではさっそく、手順とその操作・設定方法です。

①VALUE-DOMAINへドメインを登録する

VALUE-DOMAINで無料ネームサーバーを作成する

まずはVALUE-DOMAINで無料ネームサーバーを作成するために、「他社登録しているドメインを登録」へ。
ここでムームードメインで取得している、今回新しくVALUE-DOMAIN+XREAで使用するドメインを登録します。

VALUE-DOMAIN+XREAで使用するドメインを登録

登録するドメインは「www.」なしとなります。

ドメインのDNS情報の変更

その後、「ドメインのDNS情報の変更へ」へ進みます。

DNS情報を設定するドメインを選択

「設定フィールド」の設定となりますが、契約・使用するXREAのサーバーをプルダウンで選択すると、自動で設定フィールドに値が入力されますので、画面下部の保存へ。

設定フィールドの記述

ここまででVALUE-DOMAINへのムームードメインで取得した新規ドメインの登録は完了です。

次に、ムームードメインでの設定へ進みます。

②ムームードメインで取得済みドメインの設定

まずはドメインのネームサーバーの設定変更を行います。

ムームードメインで取得済みドメインのネームサーバーの設定変更

移行するドメインの「設定変更」をクリック。

使用するネームサーバーを設定

「GMOペパポ以外のネームサーバーを使用する」を選択し、下記のネームサーバーの情報を入力します。
ネームサーバーの設定 | VALUE-DOMAIN ユーザーガイド

プライマリネームサーバー
NS1.VALUE-DOMAIN.COM
セカンダリネームサーバー
NS2.VALUE-DOMAIN.COM
NS3.VALUE-DOMAIN.COM
NS4.VALUE-DOMAIN.COM
NS5.VALUE-DOMAIN.COM

「ネームサーバは設定変更後、反映されるまでに数日かかる場合があります。」とのことですが、個人的には数分から数十分程度が多いと思います。

次に、XREA側での設定になります。
XREAサーバー内の新規登録ドメインのディレクトリは、ドメイン名で自動で作成されます。

③XREAの設定

ここからはXREAでのサイト運用・ご利用方法によって違いがあるかと思いますので、その点についてはご自身の目的に合わせてご確認ください。
自分は同一のXREAサーバーで複数のドメインをマルチドメインとして利用していて、今回もそのひとつとしてドメインを設定します。

「マイドメイン運用 > ドメインウェブ」より新しいドメインを登録します。

自分はMainを「blank」として、「www」の有り無し両方のドメインをここで登録。
後にふれますが、サーバー内の「www.有りフォルダ」を「シンボリックリンク」として利用してます。

ドメインウェブより新しいドメインを登録

シンボリックリンクに変更するために、「マイドメイン利用 > 同期設定」より「www.」のファイルを「www.なし」のファイルに同期させます。

ファイルの同期設定

以上で完了です。10分ぐらいでDNSの変更が確認できました。

また、ループしてしまう(?)心配もありましたので、シンボリックリンクが作成された後、www.などの転送がからむ.htaccessはアップロードしました。

シンボリックリンクが作成

上図のように「www.有りフォルダ」がシンボリックリンクに変更(作成)されるまでには数時間から半日程度と若干時間が必要のようです。

FTPクライアントなどの再起動では変更が表示されない場合もあるので、その場合はMac・PCの再起動後確認してみてください。

Movable Type 5.2からMovable Type 6へのアップグレード方法【図解付き】

2015年9月をもってサポートおよび脆弱性対応が終了したMovable Type 5.2。
そこで、Movable Type 6へアップグレードを行いましたので、アップグレード方法のまとめとなります。

基本的なアップグレード方法の解説となりますが、一部、入れ子になっているmt:Elseタグの不具合っぽい症状もみられましたので、そちらもあわせてご紹介となります。

①ライセンス購入

まずはライセンスの購入。今回もラウンロード製品版の「Movable Type ソフトウェア版」を選択。
アップグレード前のバージョンは5.2のため、バージョンに伴う事前作業は必要ありませんでした。

>> ライセンスのご案内(通常/学校・教育機関向けアカデミック/開発者/個人無償)| CMS プラットフォーム Movable Type

>> 5.12、5.06、4.37以前のバージョンからアップグレードした後に必要な作業 : Movable Type 6 ドキュメント

②Movable Typeのダウンロード

上記にてライセンス購入後、「シックス・アパート ユーザーサイト」より該当の製品をダウンロードしておきます。

シックス・アパート ユーザーサイトからダウンロード
シックス・アパート ユーザーサイト

その際に、ログインで事前に登録したSAIDとパスワードが必要となります。

③バックアップ

データベースや既存のMovable Typeのファイルなど、必要に応じてローカルへダウンロード・バックアップを行っておきます。

phpMyAdminでデータベースをバックアップ

※環境によりバックアップ時に「DROP TABLE / VIEW / PROCEDURE / FUNCTIONを追加」にチェック。

phpMyAdmin を利用したデータベースのバックアップ・リストア

今回、サーバーはkAGOYAで自動バックアップを行っているため、データベース以外の完全データバックアップについてはそちらを事前バックアップの代わりに。

>> ファイルのバックアップとリストア – KAGOYA Internet Routing

④新しいmtフォルダをアップロード

ダウンロードしたMovable Type 6フォルダを解凍後、mtアプリケーションディレクトリをサーバーへアップロードします。

その際、既存のアプリケーションディレクトリ(mt)と被らないよう「mt_6」などにリネームしてアップロードし、
アップロード後、既存のアプリケーションディレクトリ(mt)を「mt_52」などに変更後、「mt_6」としていた新しいアプリケーションディレクトリ名を「mt」へ戻します。

mtアプリケーションディレクトリをリネーム

クライアントはTransmitを使ってます。

アップロード&リネーム後(リネーム前でもOK)、既存のmtディレクトリにある設定ファイルの「mt-config.cgi」新しいmtディレクトリへを移動し、新しいmtアプリケーションディレクトリ内のcgiファイルのパーミッションすべてを「755」へ変更します。

この際、新しいmtディレクトリに入っているmt-config.cgi-originalは削除しておきます。

新しいmtフォルダに入っているmt-config.cgi-originalは削除

⑤mt.cgi にサインイン、アップグレードを行う

https://example.com/mt/mt.cgi へアクセスし、『アップグレードウィザード』が実行します。
その後は自動でアップグレードが開始されます。

アップグレードウィザードを実行

⑥プラグインを移動

新しいアプリケーションディレクトリ(mt)のプラグインディレクトリ(mt/plugins/)へ、今まで使用していたプラグインを移動します。

プラグインディレクトリへプラグインを移動

また、「mt/plugins/」内のプラグインだけでなく、プラグインによっては「mt/mt-static/plugins/」に保存されているものもあるので、必要に応じてそのプラグインも移動します。

必要に応じてmt-static/plugins/にプラグインを移動

⑦ブログ別などで検索結果を分けている場合

スマートフォン用サイトなど、ウェブサイトに別途ブログで制作をしていて、検索結果ページ(使用プログラム: /mt/mt-search.cgi)を分けている場合があると思います。

その場合、以下のようにスマホ内で指定している検索結果用テンプレート(◯◯◯◯.tmpl)を、アプリケーションディレクトリ(mt)のsearch_templates ディレクトリへFTPなどで移動する必要があります。

<input type="hidden" name="Template" value="拡張子なしの検索テンプレート名">
※管理画面ではウェブサイトテンプレートの「テンプレートモジュール」箇所で同テンプレートが見られるかと思います。

●移動先ディレクトリ
/mt/search_templates/

⑧再構築

アプリケーションディレクトリ内のパーミッションの確認やプラグインの移動を行った後、すべての再構築を行います。
再構築終了後、実際にサイトを確認して不具合などの確認を行います。

入れ子になっているmt:ElseIfで一部不具合?

再構築後、カスタムフィールドでMTElseを使って分岐している箇所が表示されないなど不具合を発見。

以下に、「入れ子になっている MTIf の中で…」とありMTElseにnameモディファイアやtagを付けてみたのですが改善せず。
もしかしたら、「入れ子になっているMTElse側」にもなにか不具合があるのかもしれません。
※2015/10/01現在。

入れ子になっている MTIf の中で name モディファイアを省略して MTElse、MTElseIf タグを利用した場合、判定結果が正しくない問題を修正しました。(#111805)
Movable Type 6.0.4 リリースノート : Movable Type 6 ドキュメント

問題点の切り分けのため以下を試してみましたが、最終的にmt:ElseIfタグをmt:Elseタグへ変更し、取り急ぎの改善策としました。
MTIfと入れ子になっていないMTElseIfについては不具合が見られないため、カスタムフィールドのタグで判別し、「入れ子」になっている場合が該当するように思います。

改善(分岐)されたなかった修正

  • ・</mt:ElseIf>の閉じタグ有り、name・tagなしで分岐せず。
  • ・</mt:ElseIf>の閉じタグなし、<mt:ElseIf name="◯◯◯◯"> nameモデファイア有りで分岐せず。
  • ・</mt:ElseIf>の閉じタグなし、<mt:ElseIf tag="◯◯◯◯"> tag有りで分岐せず。

改善(分岐)された修正

「改善」ではないですが、コードの状況により改善策の代替になるかと。

  • ・<mt:Else>〜</mt:Else>の閉じタグなし有りで分岐OK。

WordPressでおすすめのバックアップとセキュリティ系プラグイン

WordPressのオリジナルテンプレートでウェブサイトを制作する際に、個人的な経験(汗)からできる限りプラグインを使わずに制作を行っています。

しかしながら簡便さよりも必要性という理由から、いくつかのプラグインは利用させてもらっていて、そういった基本プラグインセットも定期的に入れ替えを行っています。

今回、バックアップ・セキュリティ系のプラグインを見直すにあたり、ちょっと便利だなあと思うプラグインをご紹介させていただきます。

バックアップ系プラグイン

内部・受注どちらでも最低限の定期バックアップを行うためにプラグインを利用していて、その中でも一番利用頻度が高かったのがWP-DB-Backupなんですが、ちょっと別のものも物色。

できればデータベースだけでなく、ファイル全体のバックアップ(cron設定とかをこっちでしなくても)できるものがあれば良いなあと思い、
また、同一サイト内で複数のWordPressを利用する場合もあるので、DBのみ・ファイル全体など選択できるものがあればと思いいくつか試してみたところ、BackUpWordPressがかなり良い感じでした。

BackUpWordPress

BackUpWordPress

近い機能のプラグインも別途あったのですが、BackUpWordPressが一番しっくりきました。
気に入った点は以下。

  • サーバー設定せずに自動バックアップが可能
  • バックアップスケジュールの指定ができる
  • 保存する個数(新しいものから何番目までとか)を指定できる
  • DBのみ・ファイル全体など選択できる

また、有料($99)でDropbox・Google Drive・Amazon S3・FTP(別サーバー)・Rackspace Cloud・Windows Azure・DreamObjectsへのバックアップも設定できます。

セキュリティ系プラグイン – 外部対策用

ログイン画面についてはいろいろと対策含めあるかと思いますが、最終的に外部の人やその他のツールにログインパスワードをブルートフォースアタックされた場合にログイン画面をロックして不正ログインを防いでくれるプラグインです。

SiteGuard WP Plugin

SiteGuard WP Plugin

同類のプラグインもいくつかりますが、個々の設定ができたりCAPTCHA(画像認証)があったりと多機能です。

セキュリティ系プラグイン – 内部用

テーマの問題点をチェックするプラグインなどもありますが、こちらはオリジナルテンプレートに限らず使用するテンプレートやWordPressの設定状況・脆弱性のセキュリティをチェックするプラグインです。

Acunetix WP Security

Acunetix WP Security

セキュリティ上の脆弱性を一括でチェックでき、必要な箇所は任意で設定変更が可能です。
また、チェックする脆弱性のレベルも選択可能です。

常に使うことはないかもしれませんが、公開前とかのチェックには役立つのではないでしょうか。


2015.07.10
Acunetix WP Securityを有効化しておくと、読み込みがかなり遅くなる(?)ように。常時は停止しておいた方が良いかもしれません。

こういった防止策の前にユーザー名にadminを使わないとか、オリジナルテーマを制作せずに無料のテーマを使用する際にはものによっては一応注意するとか、初歩的な対策も大切ですよね。

heteml でKAGOYA 外部MySQL(MySQLプラン・共用)を使ってみた

MovableType 再構築の不具合がどうにか解消されないものかと、
費用抑えめの専用サーバー から、MT の動作が早いと評判のレンタルサーバーを教えてもらい、まとめていくつか試してみることにしました。

その中で、個人的にちょっと楽しみにしていたのがKAGOYA の『外部MySQL(MySQLプラン・共用)』
MySQL サーバーのみ、外部のものを利用できるとのことで、費用も共用で1GB 月/525円(最高10GB)と、かなり格安。
※専用プランも有り

現状で不具合解消を考えているのが、heteml を利用しているため、
改めて外部DB(MySQL) 利用の旨を問い合わせしたところ、heteml としてはOKとのことでした。

ちなみに、MT が早いという他のレンタルサーバー についても問い合わせしたところ、
各社、基本的に外部DB(MySQL) の利用はOKのようです。

さて、heteml での外部DB(MySQL) 利用についてどうであったかと結論から述べると、
現時点(2011年2月現在)では『接続できず』 というのが、まずの着地となってしまいました。(ホント残念)

というのも、カゴヤ 外部DB(MySQL) と、heteml のMySQL クライアントのバージョンが違うとのことで、
Movable Type のログイン画面の後、下記のようなエラーメッセージが表示されてしまいます。

しかしながら、KAGOYA の外部データベースサービスや、ましてやheteml についておすすめできない的な内容を書くつもりではなく、
現時点で、たまたまバージョンの相違があって利用できず、その件について個人的に時間を多少なりとも、費やしてしまったということをお伝えできればと思っています。

接続テスト の最中についても、KAGOYA、heteml ともにメールで何度も問い合わせを行ったのですが、
双方ともに、その対応の親切さには感謝しています。(ありがとうございます)

heteml については、一応、バージョン変更も案件にはあるそうですし、
もろもろと機能追加や変更など頻繁に行われていますので、今後次第ではないでしょうか。

再構築の不具合については、基本、MySQLサーバーのメモリなどのスペックが関係するようなので、
実際につないでみないことにはなんとも言えませんが、また近々、実際にMTの動作が機敏だった「sixcore」とかで試してみようと思ってます。

ちなみに、今回の件は個人的知識の範囲内でのまずの着地となりますので、
そのほかの方々であれば、もしかしたら可能なのかも知れません。悪しからず。

カゴヤ MySQLプラン

https://www.kagoya.jp/mysql/

heteml

https://heteml.jp

sixcore

https://www.sixcore.ne.jp/shared/index.php

change_history