0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

はじめに

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?