先日PHPの問い合わせフォームで、「添付ファイルの容量を引き上げたい」という話がありました。
現状だと3ファイル添付可能で合計10MBの設定になっていたのを、Gmailと同程度の25MBまで添付したいということでした。対応したのですが、その際にどこにどのように設定したかを備忘を兼ねて記載しておこうと思います。
ちなみに今回はPHP-FPMになります。
1)フォームのソースのバリデーションチェック
→ 3ファイル添付可能で合計10MB以内であるかをチェックしていたのを合計25MB以内であるかに変更
2)仮想ホストの設定
→ Apache および nginx の設定に、「Apache 追加ディレクティブ」というのがあり、
・HTTP 用追加ディレクティブ
・HTTPS 用追加ディレクティブ
とあるので、『SecRequestBodyLimit 25165824』を設定(ファイルアップロードのリクエストボディ上限値)
→ PHP の設定で、『post_max_size 30M』、『upload_max_filesize 25M』を設定
3)サーバ全体の設定
→ ツールと設定 > 一般設定 > PHP設定 から「X.X.XX PHP-FPM アプリケーション」を選択するとPHP.iniが編集可能なので、『post_max_size 30M』、『upload_max_filesize 25M』を設定
ここまで設定したら、Apacheを再起動(ツールと設定 > サーバ管理 > サービス管理)します。
これで、PHPのPOSTサイズは25MBになったのでいけるはず・・・、と思ってフォームに添付ファイルを添付したら、
413 Request Entity Too Large
と怒られてしまいました。
なんでと思い調べたところ、PLESKで、nginx リバースプロキシサーバ(Nginx が Apache にリクエストをプロキシします)を使用しているようで、nginxの方でアップロードしようとしたデータサイズが大きいと怒られたようです。
ですので、2)に戻るのですが
2)仮想ホストの設定
→ Apache および nginx の設定に、「Nginx 追加ディレクティブ」というのがあるので、そこに『client_max_body_size 30M;』を設定しました。
nginxの設定を行ったので、nginx(ツールと設定 > サーバ管理 > サービス管理)を再起動します。
これで行くかなと、再度フォームに添付ファイルを添付して、メール送信!まで行きましたが、待てど暮らせどメールが来ず・・・。
なんだろかと、maillogを参照しましたところ、
May 18 11:25:56 ◯◯◯◯◯◯◯ journal: plesk sendmail[16099]: handlers_stderr: SKIP
May 18 11:25:56 ◯◯◯◯◯◯◯ journal: plesk sendmail[16099]: SKIP during call 'check-quota' handler
May 18 11:25:56 ◯◯◯◯◯◯◯ postfix/postdrop[16104]: warning: uid=10002: File too large
May 18 11:25:56 ◯◯◯◯◯◯◯ postfix/sendmail[16103]: fatal: ■■■■■■@△△△△△△△.co.jp(10002): message file too big
May 18 11:25:56 ◯◯◯◯◯◯◯ journal: plesk sendmail[16102]: sendmail unsuccessfully finished with exitcode 75
May 18 11:25:57 ◯◯◯◯◯◯◯ journal: plesk sendmail[16107]: handlers_stderr: SKIP
May 18 11:25:57 ◯◯◯◯◯◯◯ journal: plesk sendmail[16107]: SKIP during call 'check-quota' handler
May 18 11:25:57 ◯◯◯◯◯◯◯ postfix/postdrop[16112]: warning: uid=10002: File too large
May 18 11:25:57 ◯◯◯◯◯◯◯ postfix/sendmail[16111]: fatal: ■■■■■■@△△△△△△△.co.jp(10002): message file too big
May 18 11:25:57 ◯◯◯◯◯◯◯ journal: plesk sendmail[16110]: sendmail unsuccessfully finished with exitcode 75
postfixでファイルが大きすぎて捨てられていました・・・。
気を取り直して
4)ツールと設定 > メール > メールサーバ設定にある、最大メッセージサイズを「35000KB」に設定、Plesk milter(Postfix)(ツールと設定 > サーバ管理 > サービス管理)を再起動します。
これでようやくメールが受信できました。