はじめに
さくらのレンタルサーバーで KentWeb の postmail.cgi
を使用していたフォームが、
すべての基本設定を満たしていたにもかかわらず、ある日突然 suEXEC policy violation
によって停止しました。
結論としては KentWeb の postmail.cgi
を辞めて WordPress + Contact Form 7 に切り替えて解決しましたが、
「動いていたものが壊れ、しかも原因が見つからない」という現象に関して、検索しても誰も言及していなかったため、
“検索に出ない技術的事故”として記録しておきます。
発生状況
- サーバー移管案件にて、KentWebの
postmail.cgi
を使用したフォームが存在 - 移管直後(2025年2月頃)は正常動作
-
約3か月後、送信時に
err:
とだけ表示されるように - さくらのサーバーエラーログに以下の記述が出力:
suEXEC policy violation: see suexec log for more details
これにより、フォームは完全に停止しました。
確認・検証したこと
KentWebのCGIでよくあるエラー原因について、以下すべて確認済み:
- ✅ CGIファイルのパーミッション:
755
- ✅ ディレクトリのパーミッション:
705
- ✅ 改行コード:
LF(Unix形式)
- ✅ ファイルエンコーディング:
UTF-8 without BOM
- ✅ FTP転送モード:
ASCII
- ✅ Perlパス:
/usr/bin/perl
(さくら指定)
これらをすべて満たした状態でも、突然動作しなくなったのが本件のポイントです。
特徴的だった点
- フォームは3か月間正常に動作していた
- 構成変更・ファイル再アップロード等の操作は一切なし
- サーバー側の環境アップデートやPerl仕様変更の可能性があるが、公開情報やリリースノートに該当するものは見つからず
最終対応
- WordPress環境下だったため、Contact Form 7 によるフォームを新規構築
- バリデーション/送信確認/サンクスページも再設計
- KentWebのCGIは完全に撤去し、フォームは安定運用に復帰
なぜ記事として残したか
KentWebのフォームCGIは、今なお多くの中小規模サイトで稼働しています。
にもかかわらず、「突然 suEXEC で弾かれた」という記録はネット上に存在しませんでした。
- 設定をすべてクリアしていたにも関わらず、ある日突然動かなくなる
- ログには「suEXEC policy violation」だけ、フォーム画面には
err:
のみ
何を調べても該当情報が出てこないストレス
こうした 「再現性のない技術的事故」 を経験する人が今後も現れると考え、この記事を残しています。
結論
KentWebのCGIが「さくらのレンタルサーバー」で突然停止した場合、
「どうせパーミッションでしょ?」「BOM付きでしょ?」といったよくある対処をすべて行っても改善しないなら、
- サーバー側の自動仕様変更(suEXEC関連)
- 公開されていない仕様制限
を疑い、KentWebからの脱却を検討するタイミングかもしれません。
余談
正直、最初から Contact Form 7 で作った方が早かったです。
KentWebのフォームは一周回ってノスタルジーを感じますが、
今の時代のフォームに求められるのは「管理画面で保守できること」です。
KentWebが悪いのではなく、時代が変わったのだと思います。