とある案件で、既存サイトのレスポンシブ化を行いました。
いざリリースとなったのですが、メールフォームだけはperlだったのでテスト環境の構築が大変だったため、リリースの時にやっちゃおうとなりました。
テスト送信をして、確認画面、完了画面でレスポンシブになっているか確認…しようとしたら、盛大なエラーが!?
なぜ!?perl周りは触っていないのに…。
結論を言うと、mincインターネットさんでサーバの仕様変更が盛大に行われていたのでした。
通常、エラーが出ると経験から怪しいところや、エラーコードから確認していきますが、仕様変更によって複数の原因が同時に発生していました。
エラーログを見ると、どうやら私が関わる前からエラーになってる…と、深夜2時に血の気が引いてしまいました。
●plファイルのパーミッションが644?
plファイルのパーミッションは755が一般的かと思いますが、よくよくみると644に…。
これはサーバの変更でファイル移動があって、ファイル移動が起こったのかも…いや、そんなことはないはず…とは思いつつも、まさか今まで10年も644だったはずはなく…。と、とりあえず755にしないと!!
●defined(%hash) is deprecated at jcode.pl
少ないエラーログを見ると、jcode.plでエラーが出ている…これは何か見覚えがありました。
ちょっとググった上で、対処法を思い出しました。
&init_z2h_euc unless defined %z2h_euc_inited;
を
&init_z2h_euc unless %z2h_euc_inited;
のように、”defined”を使っている箇所を2箇所削除
これで動くはず…と思っても全然ダメ。エラーログも別のものが出るようになったのでさらに調べてみると…ふと思い出しました。
『mincインターネットで、FTPのパスワードが強制で変更になった』とのことで、案件のお話の時に、FTPパスワードの手配を色々したのです。
そこで『パスワードを強制で変えるなんて珍しいですね』と話したのを思い出して『まさかサーバが大々的に変更になってるのでは!?』と思い、mincインターネットさんのサイトを探しまくり、まさにど真ん中のお知らせがありました。
Webサービス(ホームページ開設サービス)のシステム変更に伴うご案内 ※独自ドメインをご利用のお客様※(6回目のご案内)
6回目!?
…それまで運用保守の担当がいなかったようで、こんなに重要なお知らせにもかかわらず、先方でスルーされてきたのでしょう。
perlのパス変わってるじゃん!!(吐血)
と言うことで
●perlのパスを変える、sendmailのパスを変える
など、もろもろもろもろ対応して動くようになったとさ。
今回は朝に客先の営業さんにご報告して、とりあえず私の作業は完了。メールフォームについても誰が悪いとかの話にはせず、今動けばとりあえずヨシとしましょうとなりました(メールフォーム自体はCGIエラーが出るので、送ったつもりで届いてない…と言うことにはなってないため)
さしぶりに触ったperlですが、本当に読めない、読むのが辛いのでちょっとしたことでしたが大変でした。
perl/s-jis環境のサイトは、早めにPHP/utf-8に作り直されるといいですね。
とりあえず一件落着です。
…でもmincインターネットさんのサーバでまさかphpが動作しないという大問題が残ってるのはまた今度…(汗