【備忘録】ホスティングサーバーでMovableTypeインストールする時の注意点

NO IMAGE

通常、レンタルサーバーを利用する分には必要ありませんが、ホスティングサーバー上でMovableTypeを利用する時の注意点です。

メールフォームなどのsendmailを使うプラグインを導入する場合は特に注意です!

パスが間違っていないのに、インストールウィザードでエラーになってしまいます。

インストールウィザード気づくことができたときは、割りと問題が何かが特定しやすいのですが、サーバーの移管によって、ホスティングサーバーを利用することになった場合、問題の特定が非常に難しくなります。

なぜなら一見すると、プラグインのエラーのように見えてしまうからです。

特にメールフォーム周りのプラグインが、エラーを起こします。

しかも、なんとなくメールが届いたのか届いていないのかわからないようなエラーです。(実際は届いていないのですが)

A-formならAjax errorとか、えっ!?そこで500エラー返しちゃうの?

というような動きをしてきます。

そんな感じでエラーを返すものですから、プラグインのバージョンアップをしてみたり、パーミッションを変えてみたり、他に似たようなエラーが無いかどうか見てみたりと・・・悪戦苦闘してしまいます。

結論から言うと、

mt/lib/MT/Mail.pm

を修正する必要があります。

157行目あたりに、

if (!$pid) { exec $sm_loc, "-oi", "-t" or return $class->error(MT->translate( "Exec of sendmail failed: [_1]", "$!" )); }

という記述があります。

それを、

if (!$pid) { exec $sm_loc, "-f test\@domain", "-oi", "-t" or return $class->error(MT->translate( "Exec of sendmail failed: [_1]", "$!" )); }

というように書き換える必要があります。

test\@domain

は、同一ドメインで利用可能なメールアドレスに設定してください。

例えば、hogehoge.comというサイトにMTを入れた場合、

info@hogehoge.com

とか実際に設定してあるメールアドレスです。

ホスティングサーバーによっては、ドメイン名だけで通る場合もあるようですが。

余談ですが、PHPでもmd_send_mailを使う場合、オプション指定しなければならないようです。

最近のCMSはインストールも簡単で、だれでも利用できるような感じを受けますが、それは、あくまでもレンタルサーバー上での話。

ホスティングなどは、一筋縄では行きません。