検索の制限時間超過エラー - WaniTen|ワニ天|わにてん

走るワニ上
WebSiteX5でHP制作!
コンテンツに移動します
【最終更新:2023年6月2日】
【初回公開:2023年6月1日】
検索機能の制限時間超過エラー - WebSite X5 Evo

  • 内部検索機能を使うと、制限時間超過エラーとなり、正しく機能しない
  • 実際のエラーの内容
  • 考えられる原因(未特定)
  • 対応策

WebSite X5 Evoの更新(『ver. 2023.1.5』⇒『ver. 2023.2.3』)
改善するか確認しましたが、改善は見られませんでしたがっくりする人イラスト

『HTMLコード反映不具合』記事
HTMLコード表示反映不具合記事リンク
『フォント不明エラー』記事
フォント不明エラー記事リンク
『表示レイアウト崩れ』記事
表示レイアウト崩れ記事リンク

制限時間超過エラーの内容

 WebSite X5 Evoに元から用意されている内部検索機能を使い、
 検索を行うと、検索結果が表示されず、
 一定時間経過後にエラーメッセージが表示される。

 実際の内容:
  Fatal error: Maximum execution time of 30 seconds exceeded
  in /■■ ~ /res/x5engine.php on line 5324
  ※ ■部分は、サイトデータの場所により変わります。


 エラーの意味:
  検索機能で利用される『x5engine.php』スクリプトの処理が
  制限時間【30秒】を超えてしまったので、エラーとなった。

考えられる原因

  結論としては、原因不明です。

 1. PHPスクリプトの実行時間制限が短すぎる

  サイト公開時は、検索対象のページも少なく、ページ内の検索対象文字も少なかった為、
  問題なく機能していた可能性はあるかもしれません。

  しかし、現時点でも、ページ数が極端に多い訳では無い(50ページ程)と思うので、
  他の原因も考えた方が良さそうです。


 2. サーバーの処理能力の不足

  確かに、一定以上の負荷が掛かった場合、制限がかかることはあるようです。

  リトルサーバーの『よくある質問』によれば

  『Q. 高負荷CGIスクリプト設置は禁止ですか?
   必ずしも禁止するものではございません。
   ただし一定以上の負荷が長時間継続すれば、
   お客様に通知する事なくプロセス制限が発動する場合がございます。
   ユーザー毎にプロセス上限値が割り当てられ、
   リソース独占状態とならないよう他のユーザーに及ぼす影響を緩和しております。』
   ( リトルサーバー『よくある質問』より引用)

  しかし、実際、【30秒】経過時点でエラーメッセージが表示されることから、

  サーバー側で制限を掛けたとは考え難く、
  単に、PHPの実行制限時間として設定してある『制限時間』を超えただけ
  と考えるのがよいかと思います。

  他には、リトルサーバー・ミニプランの機能制限の影響も考えました。
  (特に、ミニプランは、『PHPアプリケーションの高速化』機能が利用不可)
  この影響があるのか、高速化可能なプランであれば改善されるのかは、不明です。


 3. 検索機能スクリプトの不具合

  エラーが発生した行【5324】周辺を(ダメ元で)確認してみました。

  しかし、
残念ながら、PHPを読み解く能力はありませんので、全く判断できません


  ただし、似たようなケースが多く発生していれば、ソフトウェアの開発会社で、修正を行うこともあるかもしれません。

  ⇒ Help Centerに、2021.2『Fatal error when searching for text』というトピックが在りました。
    現在、調査中です。




対応策

 ⇒ 代替となるサイト内検索機能CGI(wwwsrch.cgi)を稼働開始しました。
 ⇒ phpの使用バージョンの変更、max_execution_timeの設定変更など調査中です。


 1. PHPスクリプトの実行時間制限を伸ばす

  a. 『php.ini』ファイル等の設定を変更する

   php.iniファイルの、
    max_execution_time = 30
   の数値を大きく変更する方法。

   リトルサーバーでは、php.iniファイルを直接編集することはできません。
   その代わり、コントロールパネルの『PHP詳細設定』からから、
   使用するPHPのバージョンや、php.iniの内容を編集する事が可能です。

   ⇒ 使用するPHPバージョンの変更や、php.iniの設定内容の変更を試しています。

  b. 『.htaccess』に設定を追加する

   .htaccessに
    php_value ignore_user_abort On
    php_value max_execution_time 600
    の2行を追加する方法。
    (SE Life Logより引用)

   しかし、残念ながら、
   php.iniに『max_execution_time = 30』の設定がある状態では、
   .htaccess上の設定値は、優先的に適用されないようです。
   (変わらず【30秒】経過時点でエラーメッセージが表示される


 2. サーバーの処理能力の改善

  PHP高速化が可能なプランへの変更で改善されるのか、不明なので、
  現時点では、試さない事にしました。


 3. 検索機能スクリプトの代替機能を用意

  WebSite X5 Evoの検索機能の利用を停止します。
  (上手く使えないものは、仕方がありませんので、取り敢えずパス)

  代わりに、『杜甫々』様開発のCGI検索システムを導入してみました。
  ⇒ サイト内検索CGI(Wwwsearch)を、稼働開始しました。【2023年6月2日】

  当サイト内のHTMLの内部の構成の問題により、
  検索単語によっては、全てのページが『ヒット』してしまうようです。
  ⇒ 現在、対応策を考えています。

『フォント不明エラー』記事
フォント不明エラー記事リンク
『HTMLコード反映不具合』記事
HTMLコード表示反映不具合記事リンク
『表示レイアウト崩れ』記事
表示レイアウト崩れ記事リンク
コンテンツに戻る