SPIRAL ver.2のサイト機能では 500 Internal Server Error(以下、500エラー)が発生することがあります。
発生原因の特定ができない、特定に時間がかかり、本来の業務に支障をきたす可能性も考えられるため、
その際の参考となるようエラー発生ケースをまとめました。
※ご紹介する発生ケース以外にも500エラーが発生する可能性がございます。
  発生原因の特定ができない、特定に時間がかかり、本来の業務に支障をきたす可能性も考えられるため、
その際の参考となるようエラー発生ケースをまとめました。
※ご紹介する発生ケース以外にも500エラーが発生する可能性がございます。
発生原因の大まかな分類
    500エラーが発生する原因は、大まかには以下のように分類できます。
  
  標準機能の設定ミスが原因
      ブロックで使用しているフィールドがDBから削除されている等の不整合によって500エラーが発生します。
そのほか具体的な例を以下にてご紹介しています。ご参考ください。
    そのほか具体的な例を以下にてご紹介しています。ご参考ください。
ソースコードのミスが原因
サイト機能のページやブロックに記述したPHPやThymeleafの記述が誤っており500エラーが発生します。
    通信障害などによるエラーが原因
各種通信の状況により500エラーが発生します。
  標準機能の設定ミスによる発生ケース
ソースコードのミスによる発生ケース
    具体的なケースに以下のようなものが挙げられます。
    
      
    
      
SPIRAL ver.2 はThymeleafを使用して、PHPの実行結果を画面に表示します。
PHPのエラーを特定する(デバッグ)には以下のように記述ください。
この書き方をすると、PHPのエラー時に500エラーを表示させずエラーメッセージが出せるので、
デバッグが可能です。
      
      
        
      ※
        
      
(参考) PHP SPIRAL ver.2 サポートサイト
  
    
            Thymeleafの実行でエラーが起きている
        Thymeleafの記述が誤っている
        
      
          (例)
          
      
            - PHPからThymeleaf側に引き渡す処理の記述が漏れている
- 分岐処理で異なる型を比較しようとしている
-
※"f0XX"、"XX"にDBのフィールドのIDが入ります。フィールドIDの確認場所はこちらをご参考ください。
          (参考)【初級編】Thymeleafの使い方
        - 分岐処理で異なる型を比較しようとしている
-
inputs['f0XX']、
siteClient.record[XX]などでフィールドに定義されていないものを出力しようとしている※
※"f0XX"、"XX"にDBのフィールドのIDが入ります。フィールドIDの確認場所はこちらをご参考ください。
PHPの実行でエラーが起きている
        ・構文が誤っている
・全角スペースが入っている
・SPIRAL ver.2 の独自関数が使用できないページで使用されている
      ・全角スペースが入っている
・SPIRAL ver.2 の独自関数が使用できないページで使用されている
          (例)
          
      
            - 認証なしページで
            
- 登録/更新フォームの完了ステップ以外で
          
        getAuthRecordByFieldId()を使用している
- 登録/更新フォームの完了ステップ以外で
getRecordValue()を使用している
SPIRAL ver.2 はThymeleafを使用して、PHPの実行結果を画面に表示します。
PHPのエラーを特定する(デバッグ)には以下のように記述ください。
この書き方をすると、PHPのエラー時に500エラーを表示させずエラーメッセージが出せるので、
デバッグが可能です。
<div th:if="${cp.result.isSuccess}">
    // PHP成功時に表示するエリア
</div>
<div th:if="${!cp.result.isSuccess}">
    // PHPエラー発生時に表示するエリア
    // 発生したエラーメッセージが表示されるため、エラー文言を設定する必要はありません
     <p th:text="${cp.result.errorMessage}">error message</p>
</div>
      <div th:if="${cp.result.isSuccess}">...</div>の外にPHPのタグがある場合にエラーとなります。
      (参考) PHP SPIRAL ver.2 サポートサイト
通信障害などによるエラーの発生ケース
      具体的なケースに以下のようなものが挙げられます。
      
    一時的なアクセス集中によりレスポンスが低下している
        大規模なキャンペーン等による一時的なアクセス集中が発生した際に、SPIRAL ver.2 のサーバーのレスポンスが低下し、一時的に500エラーが発生します。
      
      SPIRAL ver.2と連携するサービス(WordPress等)の処理が不安定になっている
        各種サービスのお問い合わせ窓口までご連絡ください。
      
      SPIRAL ver.2で障害が発生している
        弊社で障害を検知した場合は速やかにユーザへ通知を行っています。
障害が疑われる場合はお問い合わせまでご連絡ください。
    障害が疑われる場合はお問い合わせまでご連絡ください。
最後に
      500エラーが発生した際は、今回ご紹介した発生ケースを参考にしてみてください。
    
   
         
                                           
                                        