【旧刊】WordPressテーマ制作のみを取り扱った別冊電子書籍がAmazon Unlimitedでお楽しみ頂けます!!
Amazon Unlimited内で 田中勇輔 で検索してください。

☓ 閉じる

10Apr2012

WordPressが壊れた!!という時の処方箋

wordpressが壊れた時の処方箋

WordPressを初めて使うときって緊張しますよね。
どこか触ったら壊れるんじゃないかって。

僕も初めてWordPressを導入したときは、すでにWEB制作は自由自在にできるレベルなのにビクビクしていました。しかし何回も”壊して直して”を繰り返していたら、数カ月後には大抵のエラーには対処できるようになっていました^^;

先月WPサイトのカスタマイズでお世話になったクライアントさんが面白い事を言っていました。
「最初は爆弾の解体のようだったWordPressのカスタマイズですが、難しい箇所だけ変更して頂き、その作業内容の説明を聞くだけで自分でも徐々に仕組みがわかるようになってきました!」

何気ない一言ですが、とても嬉しかったので今でも印象に残っています^^

さて、今回は僕が爆弾解体に失敗した時のお話をします 笑
今までWordPressサイトを運営していて、最もあせった瞬間トップ3です!

1. テーマ編集したらデザインが崩れた!

1.1. 稼働中サイトのデザイン変更で

WordPressサイトのヘッダーメニューをちょこっと変えようとした時のことです。

必要なファイルを変更してサーバーにアップして確認してみたら「崩れてる!!」

あわててファイルを元に戻したり頑張って変更を適用したり格闘すること数時間。

「デザインを直してる最中に誰かに見られたらどうしよう><」

WordPressをカスタマイズする方は、必ずこの経験があると思います。。。

1.2. WordPressはHTMLサイトと違いプレビューができない

WordPressはご存知の通りPHPというサーバーサイドで動作するスクリプトによって作られています。

1つのページ(例えばトップページ)は、

1. header.php
2. sidebar.php
3. index.php
4. footer.php

の4つのファイルを使い、サーバー側で1ページに組み立ててから出力されます

その為、自分のマシン上で最終的なデザインは確認できません。

1ページ全体のデザインでなくヘッダー(header.php)だけなら確認できる? と思う方もいるでしょう。

それぞれのパーツはHTMLではなくPHPで作られています。

その為、DreamweaverなどのHTML編集ソフトでheader.phpを開いても、ブラウザで見ている感覚でデザインプレビューをする事はできません。

最終的に出力されるデザインを確認するためには、変更したファイルをサーバーにアップして実際に稼働中のサイトで確認する必要があります。

普段HTML/CSSで制的なサイト制作をしている人はデザインをプレビューしながら作るのに慣れていると思いますので、プレビューする前に公開されてしまう事に戸惑ってしまいます。

1.3. 一般に公開されないようにサイト制作をする方法

PHPファイルは、サーバーで最終的なHTMLファイルとして出力されます。

その為最終的なデザインを確認するためには、サーバーで動作させる事が絶対条件となっています。

つまり、サーバーで動作させながら一般公開されないようにする工夫が必要です。

【方法1 公開されないテスト用サイトを用意する】

WordPressサイトを2つ作成し、1つは公開用、1つはテスト用にします。

公開用サイトのテーマフォルダを、そのままテスト用サイトにコピーして適用します。

他にウィジェット部分やダミーの記事を複数個作っておけば、テスト用サイトとして機能します。

公開用サイトと同じサーバー上にテストサイトを設置する場合、重大なエラーが起きた場合は公開サイトにも影響を及ぼす危険があります。

【方法2 ローカルにサーバー環境を構築する】

今まで隠していましたが、実はローカルマシン(Win,Mac)にサーバーシステムをインストールする事ができます。

「めんどくさそう」「プロっぽい」とか思わないで下さい。以下のパッケージを使えば、ブラウザをインストールするのと同じ要領ですぐに終わります。

【サーバーシステムの簡単インストールパッケージ】

Windows → XAMPP
Mac → MAMP

やはりローカルPCで全ての制作・動作確認までができるので、レンタルサーバー上で作業するよりも作業性・安全面などで格段に便利になります。

本番サイトと切り離された環境ですので、安心感が違います。未知のシステムファイルやデータベースなども気軽にぶっ壊して勉強できます。

僕もローカルにサーバーシステムをインストールして以来、急激にWordPressの理解が深まりました。やはり機械は壊して直すのが、一番の学習方法です^^

2. Internal Server Error!?

サイトのどのページにアクセスしても「Sever Error」という恐怖の文字が表示されます。

「レンタルサーバーが壊れたのか!?」「サイトが消失したのか!?」という恐怖に襲われますが、まずは落ち着いてください。
500errorの原因の多くはサーバーシステムのエラーですので、サイトデータが破損している可能性は限りなく低いです。

まずは原因を特定しましょう。

チェックリストを作ってみましたが、僕はサーバーエラーの専門家ではありませんので補足があれば是非教えてください^^;

2.1. 他のPC/ブラウザでも同様のエラーが起きますか?

他のPC/ブラウザでエラー表示されない場合は、自分のPC/ブラウザの問題です。

・ブラウザのキャッシュをクリアしてみる。
・システムを再起動してみる。

などで解決されないか確認しましょう!

2.2. 直前にサーバーファイルを変更しましたか?

変更直後にエラーが起きた場合は非常に怪しいですね・・・あなたが変更したファイルに原因がありそうです。

.htaccessが原因で500errorが起こる事があるそうですので、htaccessを変更した場合は確実にコレが原因です。

2.3. エラーは断続的ではないですか?

時々エラーが起こるけど勝手に直る、というような断続的なエラーの場合は、レンタルサーバーが特殊な制限をしている可能性があります。

多くのレンタルーサーバーではサーバーダウンを防ぐために、一定以上の負荷がかかると特定のアカウントに対してアクセスを制限します。

通常のWordPressサイトを運営しているだけではサーバー負荷はかかりませんので、他に原因がありそうです。

・サーバーサイドで動作するシステムを設置している
・メールのIMAP同期頻度・範囲が大きすぎる

僕は一度IMAP設定が原因でアカウントにアクセス制限がかかった事があります。

スマホ時代になったので、メールサーバーへのアクセス頻度は特に注意が必要な項目ですね。

2.4. ユーザー側で原因を特定できない場合は

500errorはサーバーシステムのエラーですので、コチラ側ではどんなに頑張っても原因を特定できない場合があります。
レンタルサーバーに問い合わせをしたら詳しく教えてくれるはずですので、困ったら変な操作をする前に質問をしてみましょう。

3. 最も焦った第一位!サイトも管理画面も真っ白!

3.1. 恐怖の真っ白エラー

これを初めて食らったときは”相当”あせります。。。

なにしろ場合によっては管理パネルにログインする画面する真っ白になるんですから。。。

僕が始めて食らったときは、テーマフォルダのfunctions.phpを変更した直後でした。

原因を調べたところ、やはり真っ白エラーの原因の多くはfunctions.phpによるものみたいです。

※ログイン画面も真っ白な場合は、FTPソフトで直接サーバーファイルを変更できる環境がない限り、修復するのは難しいでしょう。今後もWordPressのデザイン変更をする場合はFTPソフトを使用することが望ましいですので、この機会に導入してみてください。

3.2. まずは真っ白エラーだけ修復して、一安心しましょう。

FTPソフトでサーバー上のfunctions.phpを削除してみましょう。

/wp-content/theme/お使いのテーマフォルダ/functions.php

functions.phpを削除することにより特定の機能が動作しなくなりますが、真っ白エラーは直るはずです。

これで一安心したら、具体的にfunctions.phpの中のエラーを直しましょう。

3.3. functions.phpでよくあるミス

こちらの記事でfunctions.phpのエラーについて触れていますのでご覧ください^^

[WordPress] “続きを読む”のカスタマイズ

3.4. functions.phpを削除しても直らない場合は

話が前後しますが、funtions.phpを削除しても真っ白エラーが直らない場合があります。

その場合はさらに荒技になりますが、テーマファイルごと削除してみてください。

真っ白エラーの原因はテーマファイルにあるみたいですので、落ち着いて対処すれば必ず復旧できるはずです。

※他のブログを読んでいると、レンタルサーバーによっては原因不明のエラーがあるらしいです。いずれにしてもほぼ確実に治せるエラーですので、パニックになってサイトを削除したりしないでください^^

【4/10追記】
Google+でMune Andoさんに情報を頂きました。
ブラウザキャッシュが影響するケースも存在するみたいです。
紹介した中で最も”お手軽な原因”ですので、まずはキャッシュクリアを試してください。

関連記事