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」を停止させることにし、ホームページの閲覧もできるようにパーミションを元に戻しました。

GoogleウェブマスターツールからダウンロードしたCSVファイルが文字化けして開けない

GoogleウェブマスターツールからダウンロードしたCSVファイルは、Excelで開こうとすると文字化けしてしまいます。

ダウンロードしたファイルの文字コードは「UTF-8」という文字コードになっていますが、ExcelはCSVファイルを「Shift-JIS」という文字コードで開く仕様になっていることが原因らしいです。

[XL2002] UTF-8 形式のテキスト ファイルが文字化けする

解決方法

テキストエディタで開き、文字コードをShift-JISにして保存する。

古くからWEB関連に携わっている人の場合、テキストエディタは必須のツールだったので、PCに入っているし、使い慣れているでしょうから、この方法で良いでしょうか。私は、サクラエディタを使っていますので、これで対応しています。

garbled-csv-01

  1. CSVファイルを右クリックし、「SAKURAで開く」をクリック。または、サクラエディタを起動し、CSVファイルを開く。
  2. 文字化けせずに表示されていることを確認する。
    文字化けしている場合は(経験上、文字化けしていたことは有りませんが)、SAKURAを起動し、「ファイル」→「開く」をクリックし、文字コードセットが「自動選択」になっているのを、「UTF-8」を選択して開く。
  3. メニューの「ファイル」をクリックし、「名前を付けて保存」をクリック。

文字コード変換ソフトを使う

文字コード変換ソフトを試してみた中で、お手軽で使いやすかったのは、「KanjiTranslator」でした。Vectorからダウンロードできます。

KanjiTranslator

garbled-csv-02

  1. KanjiTranslatorを起動する。
  2. 変換先文字コードを「Shift JIS」、「改行=CR+LF」に、設定する。
  3. 「ここにファイルやフォルダをドロップしてください」という部分に、CSVファイルをドラッグ&ドロップする。
  4. 「変換」ボタンをクリック。

元のファイルを上書きしてしまいますので、うまく行かなかった場合は、元のデータが無くなってしまうため、元ファイルからコピーし、それを変換するのが良いと思います。

WordPressで「指定されたページ(url)へのアクセスは禁止されています」というエラーが表示される

WordPressをロリポップで使用されている会社から、ご質問をいただきました。

問題

Contact Form 7で、英語のフォームを作成し、保存しようとすると、
「指定されたページ(url)へのアクセスは禁止されています。」
というエラーが出てしまい、先に進めなくなってしまう。

解決方法

ロリポップには、WAFという機能が有りますが、これによってエラーになるケースが有ります。

WAFを無効にする方法

  1. ロリポップのユーザー専用ページを開く。lolipop-waf_01
  2. 左側メニューの「WEBツール」をクリックし、「WAF設定」をクリック。
  3. 問題が発生しているドメインの「無効にする」ボタンをクリック。
  4. 「設定変更後、反映に5~10分ほど時間を要します。」と書いてあるとおり、無効にしてもすぐに反映されません。

lolipop-waf_02

Contact Form 7に限らず、ロリポップでWordpressを使用している場合に、管理画面の操作でエラーが発生する場合は、WAFを一時的に無効にしてみると良いでしょう。

エラーが発生する操作が完了したら、WAFを再度有効にしておくことをお勧めします。このケースでも、Contact Form 7の英語フォームの追加後、WAFを再度有効にしました。
エラーが発生する操作が、頻繁におこなう必要が有る操作の場合は、その度にWAFを無効にするというのは現実的ではないので、ロリポップに相談してみると良いかもしれません。