WordPressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」が表示された時の解決方法

現象

WordPressで、プラグインのアップデートを実行したところ、
「現在メンテナンス中のため、しばらくの間ご利用いただけません。」
という画面が表示され、管理画面にアクセスできなくなってしまった。
少し待ってみたが、改善しない。

解決方法

  1. FTPソフトでサーバーにアクセスします。
  2. WordPressをインストールしたディレクトリ(=フォルダ)を開きます。通常は、FTPソフトでサーバーに接続して最初に開く場所になりますが、サーバーの仕様やFTPソフトの設定、WordPressの設定によっては、違う可能性も有ります。そのディレクトリには、「wp-admin」、「wp-content」、「wp-includes」などのディレクトリがあるはずです。
  3. 「.maintenance」というファイルを見つけます。
  4. このファイルを削除することで復旧します。

WordPressで「Parse error: syntax error, unexpected T_FUNCTION~」エラーが発生する

状況

WordPressで、「ライブプレビュー」のボタンを押すと、
Parse error: syntax error, unexpected T_FUNCTION~
というエラーが発生し、先に進めない。

  • WordPressバージョン:4.9.5
  • PHPバージョン:5.2

解決方法

PHPをバージョンアップする。

このサーバーでは、PHPのバージョンの選択肢が、5.6、または、7.1であったため、5.6にバージョンアップした。

WordPressのCSS編集で「保存して公開」しても保存されない

WordPressをご利用の会社様から。
「外観」メニューの「CSS編集」でCSSを編集後、「保存して公開」ボタンをクリックしても、保存ができない、とのこと。

環境

レンタルサーバー:ロリポップ(WAF有効)

解決方法

WAFのログを見るとエラーが記録されています。
WAFを無効にしてしまうのも不安ですので、WAFの除外ルール設定をします。

  1. SiteGuardというプラグインのWAFチューニングサポートという機能を使って設定します。
    SiteGuard WP Plugin
  2. インストールすると、WordPress管理画面の左側メニューに「SiteGuard」という項目が追加されていると思います。このメニューの中に「WAFチューニングサポート」というメニューが有るのでクリックします。
  3. ON/OFFの切替ボタンの「ON」をクリックし、「ルールを適用」をクリックします。一見、白いボタンになっている方が有効で、黒いボタンになっている方が無効に思えますが、逆なので注意が必要です。
  4. 「新しいルールを作成」をクリックします。
  5. シグネチャ欄に、
    xss-try-4
    sqlinj-55
    と入力します。xss-try-4とsqlinj-55は改行してください。
  6. ファイル名(任意)欄に、
    admin-ajax.php
    と入力します。
  7. 「コメント(任意)」には、後から分かりやすいように、
    CSS編集
    などと入力しておきます。

上記手順完了後、CSS編集ができるようになっていることを確認してください。

WAFの除外ルールの設定方法については、
WordPressが正しく動作しない場合のWAFの設定方法|ロリポップ編
をご覧ください。

WordPressが正しく動作しない場合のWAFの設定方法|ロリポップ編

WordPressがWAFにブロックされて正しく動作しない場合が有ります。
WAFを無効にするのではなく、除外ルールを設定することで、正しく動作させることができます。

WAFの除外ルール設定手順

  1. プラグイン「SiteGuard WP Plugin」を使用しますので、インストールしていない場合は、インストールして有効化する。
  2. WordPressの管理画面のメニューから、「SiteGuard」→「WAFチューニングサポート」を開き、「ON」をクリックし、「ルールを適用」をクリックする。WAFチューニングサポートが有効になる。
  3. WordPressで、正しく動作しない機能を、1度おこなう。
  4. ロリポップのユーザー専用ページ」のWAF設定でログを参照し、「URL」と「検出されたシグネチャ」を確認する。
  5. WordPress管理画面の「SiteGuard」→「WAFチューニングサポート」を開き、「新しいルールを追加」をクリックする。
  6. 先程ユーザー専用ページで確認した、「検出されたシグネチャ」の内容を「シグネチャ」に、「URL」を「URL」に入力し、「保存」をクリックする。
  7. 手順3でおこなった正しく動作しない機能が、正しく動作するようになったかを確認する。
    • 【正しく動作するようになった】
      正しく動作しているように見える場合でも、念のため、ロリポップのユーザー専用画面のWAF設定でログを確認し、新たなエラーが記録されていないか確認する。
    • 【正しく動作しない場合】
      別のエラーが発生しているので、手順4から繰り返す。URLが同じで、別のシグネチャが記録されている場合、手順5で新しいルールを作成せずに、先程作成したルールのシグネチャ欄に改行して追記することができる。

WordPressを更新しようとすると、「Fatal error: Maximum execution time of 30 seconds exceeded in …」というエラーが発生する

WordPressを更新しようとすると、

Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\wp-includes\class-wp-http-curl.php on line 324

というエラーが発生し、更新ができないという現象が発生。

見ての通り、xampp環境です。
調べてみると、php.iniの「max_execution_time」を30から60などに書き換えるという対策が書かれていたので試してみましたが、同じエラーが発生。

そこで、気付く。
あぁ…あれだ。
今、UQ WiMAXでノーリミットモードでネットに接続してるから、ダウンロードに時間が掛かりすぎて、エラーになってるに違いない。
ということで、ノーリミットモードからハイスピードモードに切り替えて、再度更新してみると…
うまく行きました。

ホスティング環境だと見ることの無いエラーかもしれませんね。

Simple MapにGoogle Maps APIキーを登録したらページが表示されない

現象

WordPressのプラグインSimple MapにGoogle Maps APIキーを登録し、ページを表示させようとすると、Simple Mapのショートコードの有無に関係なく、すべてのページの画面が真っ白になる。
ソースを確認すると、数行だけ出力されていることが確認できる。

解決方法

インストール、有効化されていたプラグインHead Cleanerを停止させたところ、正常にページが表示されるようになった。

WordPressの「メディアを追加」ボタンが反応しない

お問い合わせ内容・問題点

WordPressの記事の編集画面で、以前は動作していた「メディアを追加」ボタンが、クリックしても反応しなくなった。

確認したところ、「ビジュアル」と「テキスト」の切替タブも動作していません。

環境

WordPress 4.3

テーマ

Shooting Star

対応

WordPress 4.3にバージョンアップした時から動作していなかった可能性が考えられます。更新頻度はそれほど高くないため気付かれなかったようです。

管理画面を確認すると、プラグイン、テーマの更新が適用されていない状態でした。
Shooting Starのテーマを更新したところ、「メディアを追加」ボタンが正常に動作するようになりました。
プラグインの更新、WordPress 4.3→4.3.1への更新も併せておこなっておきました。

今回は、使用しているテーマが作成者によって更新されていたので、短時間で解決しましたが、テーマやプラグインは、WordPress本体のバージョンアップで動作しなくなる可能性が有り、作成者が対応しない場合は、テーマの変更、プラグインの無効化・変更をするか、自分でテーマやプラグインのプログラムを書き換えなければなりません。では、WordPressの本体を含め、動作しているからバージョンアップしなければ良いかというと、セキュリティ上の問題から、バージョンアップは常に適用しておく必要が有ります。
そのため、テーマやプラグインが動作しなくなった場合に対応できる運用体制が必要になります。

WP Security Audit Logを有効化するとエラーが出て有効化できない

現象

「WP Security Audit Log」をインストールし、有効化しようとすると、以下のようなメッセージが表示され、有効化できない。また、プラグインの削除もできない。

重大なエラーを引き起こしたため、プラグインを有効化できませんでした。

Warning: require_once(__DIR__/../Connector/ConnectorFactory.php) [function.require-once]: failed to open stream: No such file or directory in □□□□□□□□□□□/wp-content/plugins/wp-security-audit-log/classes/Models/ActiveRecord.php on line 2

Fatal error: require_once() [function.require]: Failed opening required ‘__DIR__/../Connector/ConnectorFactory.php’ (include_path=’.:/usr/local/php5.2/php’) in □□□□□□□□□□□/wp-content/plugins/wp-security-audit-log/classes/Models/ActiveRecord.php on line 2

原因と対処方法

PHPのバージョンが古いために発生していました。
PHPを5.3にバージョンアップすることにより、正常に有効化することができました。

WordPressの一般設定で保存するとエラーがでる

WordPressをインストールしたが、一般設定で「変更を保存」をクリックするとエラーが出る、というお問い合わせ。

状況

一般設定で、「変更を保存」をクリックすると、図のようにエラーが発生します。
設定は反映されているようです。

move-index-php-02

Warning: fileperms() [function.fileperms]: stat failed for … /index.php in … /wp-admin/includes/file.php on line 870
Warning: Cannot modify header information – headers already sent by (output started at … /wp-admin/includes file.php:870) in … /wp-includes/pluggable.php on line 1178

よく見ると、一般設定の「サイトの言語」の部分にもエラーが表示されています。

move-index-php-01

Warning: fileperms() [function.fileperms]: stat failed for … /index.php in … /wp-admin/includes/file.php on line 870

WordPressをルートディレクトリではなく、サブディレクトリにインストールしているようです。

解決方法

WordPressをルートディレクトリにインストールしたくないという方は居らっしゃいますが、その場合、Wordpressをサブディレクトリにインストールすることになります。
例えば、abcdef.co.jpというドメインの「wxyz」というサブディレクトリにWordpressをインストールした場合、そのままだと、「http://abcdef.co.jp/wxyz」がホームページのアドレスになってしまいます。ホームページのアドレスは、「http://abcdef.co.jp/」にしたい場合、「wxyz」フォルダのindex.phpをルートディレクトリに移動させて、index.phpの内容を書き換えるという作業をします。

このindex.phpは移動させてはいけないようです。

移動して書き換えたindex.phpを、「wxyz」フォルダにコピーし、元の内容に書き換えることにより、解決しました。

WordPressをサブディレクトリにインストールする場合、サブディレクトリのindex.phpは移動ではなく、コピーする必要がありますので、注意が必要です。

「【ロリポップ!】メール大量配信を確認いたしました」というメールが届く

状況

ロリポップを利用されている会社様から、ご相談。以下のメールが届いたとのこと。


【ロリポップ!】メール大量配信を確認いたしました

契約中のサーバースペース【xxxxxxxxxxxxxx】より、
【 454 】通のメール送信を確認いたしました。

禁止事項で定めた、1時間あたりのメール配信数を超過しております。
その為、現在アカウントからのメール送信を制限いたしております。


さらに3分後に、776通のメールが送られたという同様のメール。
そして、約40分後には、


契約中のサーバースペース【xxxxxxxxxxxxxx】のファイル

■ /home/users/2/xxxxxxxxxxxxxx/web/index.php

より、【 3,053 】通のメール送信を確認いたしました。

禁止事項で定めた、1日あたりのメール配信数を超過しております。
その為、現在ファイルのパーミッションを000へと変更しております。


というメールが届き、ホームページにもアクセスできなくなった。社内には誰も居ない時間帯なのでメールを送信していないと思う、とのこと。

原因と解決方法

メールを大量に送信していたのは社員ではありませんでしたし、メールアドレスが乗っ取られて使われていたというわけでもありませんでした。

この会社様では、WordpressというCMS(HP管理システム)でホームページを作成、更新しており、このWordpressにプラグイン(もともと無い機能を追加するプログラム)「404 Notifier」がインストールされていました。

他のサイトからリンクされているページを削除したり、URL変更をした場合に、「見つかりません」というエラーになってしまいますが、このエラーが発生した時に、メールで通知してくれるのが、「404 Notifier」です。

今回は、不正アクセス目的で、Wordpressではなく違うCMS(Joomla?)の管理画面のアドレス、
/administrator/index.php
を狙って、繰り返しアクセスした結果、そのCMSを使っていないので、「見つかりません」というエラーが大量に発生し、その度に「404 Notifier」からメールが送信されていました。「404 Notifier」からのメールには、フィルタを掛けて別のフォルダに自動で移動させていたため、気付かなかったようです。

不正アクセスが治まるまで「404 Notifier」を停止させることにし、ホームページの閲覧もできるようにパーミションを元に戻しました。