🕌

古の技術、KentWebのpostmail.cgiがsuEXECポリシー違反で弾かれた話

に公開

はじめに

さくらのレンタルサーバーで 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が悪いのではなく、時代が変わったのだと思います。

Discussion