先日、クライアントから「自社サーバーにお問い合わせフォームが欲しい」というシンプルな依頼を受けました。普通なら数時間の作業です。WordPressのプラグインを入れるか、簡単なPHPフォームを設置して終わり。

……甘かった。あまりにも甘かった。

Day 1:WordPressならいつものフォームが使えるだろう

「お客様のサーバーは何を使っているんですか?」
「自社サーバーです」
「いえ、サーバーのOSとかPHPのバージョンとか…」
「うーん、担当者に聞いてみます」

後日回答:「WordPressは入れられないみたいです」

そうですか。であれば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工房さんの超シンプルなフォームをダウンロード。これなら依存関係もほぼなし。

アップロード…動いた!(感涙)

機能的には物足りないけど、少しカスタマイズすれば十分。これで終わり…

エピローグ:教訓

自社サーバーに何かをインストールする時のチェックリスト:

  1. PHPバージョンの確認
  2. 必要なモジュールの確認
  3. パーミッションの設定
  4. サーバー管理者との事前相談
  5. テスト環境での動作確認
  6. プランB、C、D、Eの用意
  7. 気合と根性
  8. お祈り

そして最も重要なこと:「動けばいい」

シンプルなものはシンプルに動きます。複雑なものはどこかで必ず躓きます。

心に留めておいてください、次回「自社サーバーに〇〇を入れるだけ」という依頼が来たときのために…。