WordPress サイトの健康「アクティブPHPセッションを検出しました」のトラブルシューティング方法

Last Updated:2024年07月09日| コメントを残す

WordPress サイトの健康ツールで「アクティブなPHPセッションを検出しました」、「REST APIでエラーが発生しました」など、重要な問題に関する警告が表示されることがあります。

WordPress サイトの健康「アクティブPHPセッションを検出しました」トラブルシューティング方法5

この警告が表示された場合は、解決策を見てみましょう。

WordPress サイトの健康「アクティブPHPセッションを検出しました」の問題

「アクティブなPHPセッションを検出しました」という警告が表示された場合は、クリックすると次の説明が表示されます。

session_start() 関数呼び出しが PHP セッションを作成しました。これはレストAPIとループバック要求を妨げます。 HTTP 要求を行う前に、 session_write_close() はセッションを閉じる必要があります。

英語版を使用している場合An active PHP sesion was detected「警告が表示されます。韓国語版では「重要な問題」となっていますが、英語の原文は「critical issue「として「深刻な問題」ほどの語彙のようです。

WordPress サイトの健康「アクティブPHPセッションを検出しました」トラブルシューティング方法6

session_startの詳細については PHPマニュアルを参照してみてください。

この問題が発生すると、「REST APIでエラーが発生しました」という警告も表示されます。

WordPress サイトの健康「アクティブPHPセッションを検出しました」トラブルシューティング方法7

この問題が発生してもサイトの操作に問題がない可能性があり、場合によっては書き込み中にエラーが発生することがあります。 (REST APIエラーが発生すると、ブロックエディタの動作に影響を与える可能性があります。)

アクティブなPHPセッション検出の問題が発生した場合は、Stackoverflowに登場しました」Getting "An active PHP session was detected" critical warning in wordpress"文を参照してください。

Stackoverflowに登場したQ&Aにいくつかの解決策があります。

ほとんどの場合、このエラーの実際の理由は、プラグインまたはテーマ内でsession_start()関数を使用したときにPHPセッションを使用するメカニズムが間違っているためです。この問題に該当する場合は、プラグインで次のようなコードを見つけるようにしてください。

if ( !session_id() ) {
    session_start();
}

上記のコードを次の形式に置き換えると、問題が解決する可能性があります。

if ( !session_id() ) {
    session_start( [
        'read_and_close' => true,
    ] );
}

別のユーザーはWP Hotel Bookingプラグインのために問題が発生しました。 チャイルドテーマ(子テーマ)の関数ファイルに追加して問題を解決したそうです。

function mymodule_curl_before_request($curlhandle){
session_write_close();
}
add_action( 'requests-curl.before_request','mymodule_curl_before_request', 9999 );

WPホテル予約プラグインは、公然と2024年6月19日に一時的に廃止され、検討中です。おそらくセキュリティ問題がある WordPress 利用規約に違反して一時的に WordPress プラグインリポジトリから削除されたようです。

WordPress サイトの健康「アクティブPHPセッションを検出しました」トラブルシューティング方法8

WordPress プラグインリポジトリから削除されたプラグインは使用しないでください。場合によっては、プラグインでセキュリティの脆弱性が発見されたが、開発者はその問題を解決しなかったため、プラグインは WordPress リポジトリから削除されることがあります。

一般的なトラブルシューティング方法

技術的には、上記のことが正しいようです。通常 WordPressこの問題はプラグイン/テーマの競合が原因で発生する可能性があります。場合によっては、プラグインやテーマが誤って作成されて問題を引き起こす可能性があります。

すべてのプラグインを無効にして、問題がサイトの健康から消えるかどうかを確認してください。警告フレーズが消えた場合は、プラグインを1つずつ有効にして問題を引き起こすプラグインを特定できます。

問題を引き起こすプラグインが重要でない場合は、削除してプラグイン開発者に問題を報告できます。重要なプラグインの場合は、上記のStackoverflowドキュメントに記載されている方法でトラブルシューティングを試すことができます。

  1. すべてのプラグインを無効にします。
    • 警告が表示されない場合は、プラグインを1つずつ有効にして問題を引き起こすプラグインを見つけます。
  2. プラグインの問題でなければテーマ WordPress デフォルトのテーマの1つに変更して問題が解決するかどうかを確認します。

参照


コメントを残す

コメント