先日、クライアントから「自社サーバーにお問い合わせフォームが欲しい」というシンプルな依頼を受けました。普通なら数時間の作業です。WordPressのプラグインを入れるか、簡単なPHPフォームを設置して終わり。
……甘かった。あまりにも甘かった。
Day 1:WordPressならいつものフォームが使えるだろう
「お客様のサーバーは何を使っているんですか?」
「自社サーバーです」
「いえ、サーバーのOSとかPHPのバージョンとか…」
「うーん、担当者に聞いてみます」
そうですか。であればWordPressプラグインは使えないわけですね。でも大丈夫、PHPが動くなら他のメールフォームシステムがあります。
Day 3:EasyMailがいいかも
「PHPとMySQLは使えますか?」と確認したところ、「使えるはずです」との回答。よし、オープンソースのEasyMailを入れてみよう。
FTPでアップロード…「500 Internal Server Error」

おや?おかしいな。ログインしてサーバーを見てみると、PHP 8.3.14という新しいバージョンが動いています。いいですね、最新版で。これなら…
Day 5:いったん原因を調査
「check.php」という診断ファイルを作ってアップロード。PHPのバージョンや設定を確認してみると…
PHP Version: 8.3.14
sendmail_path: /usr/sbin/sendmail -t -i
mail function: 有効
いいじゃないですか!メール送信もできそうです。PHPも動いているし、なぜEasyMailが動かないのか…
Day 7:TransmitMailという神ツールを見つけた
「もっとシンプルなPHPメールフォームはないか…」と調べていると、TransmitMailというツールを発見。これなら必要な機能が揃っていて、依存関係も少なそうです。
ファイル一式をアップロード…「500 Internal Server Error」

え?なぜ?(額を机に打ち付ける音)
Day 9:別環境でテスト
「別のレンタルサーバーで同じファイルで試してみる?」
コピー、アップロード…あっさり動きました。
何故だ。何故だ。何故だぁぁぁ!!!
Day 11:PHP工房のシンプルフォームに活路を見出す
最後の手段として、PHP工房さんの超シンプルなフォームをダウンロード。これなら依存関係もほぼなし。
アップロード…動いた!(感涙)
機能的には物足りないけど、少しカスタマイズすれば十分。これで終わり…
エピローグ:教訓
自社サーバーに何かをインストールする時のチェックリスト:
- PHPバージョンの確認
- 必要なモジュールの確認
- パーミッションの設定
- サーバー管理者との事前相談
- テスト環境での動作確認
- プランB、C、D、Eの用意
- 気合と根性
- お祈り
そして最も重要なこと:「動けばいい」
シンプルなものはシンプルに動きます。複雑なものはどこかで必ず躓きます。
心に留めておいてください、次回「自社サーバーに〇〇を入れるだけ」という依頼が来たときのために…。

