どうぞよろしくお願いいたします。
前提・実現したいこと
Mvovable Type(+ nginx)にてサイトを運用しています。
いくつかのアーカイブテンプレートで出力の制御をPHP(Smartyタグ)で行いたく、スタティックからダイナミックパブリッシングへの変更を検討しています。
また、現在いくつかのアーカイブページは、ダイナミックパブリッシングで正しく稼働しているものがあり、他のテンプレートについても変更して問題ないだろうと思っていました。
発生している問題・エラーメッセージ
実際にダイナミックパブリッシングに変更してみたところ、以下の問題が発生しました。
アーカイブテンプレートの出力方法を変更したところ、正しく表示されるページと、真っ白でなにも表示されないページがでてきた
- 真っ白のページではHTTPステータス500で返ってきており、PHP、もしくはPerlで何らかのエラーが出ている可能性はあるが、nginxでのPHPエラーログが出力されないため、なにが原因かはっきり掴めない
- 記事の中に、アーカイブテンプレートで使用できないMTタグが使われているのかと思いましたが、そういった類のものは見当たりませんでした。
- 表示されない記事の法則性を見つけようとしてみました(perlで扱えない文字が入っている、文字コード変換に失敗している可能性のある文字がある)が、稼働しているダイナミックパブリッシングのページでは正しく表示されるため、これといった法則性を見つけられませんでした。
- 使用しているテンプレートの内容に問題がある可能性がありましたが、開発環境では正しく表示されているため、問題があるわけではなさそうです
アーカイブテンプレートの出力方法を変更し、定時更新設定を行って公開されたページを確認したところ、「ページが見つかりません。 An error occurs.」 と表示される。
- こちらは上記問題のページとは別のアーカイブテンプレートで発生します。
- MTから再構築をし直せば正しく表示されるようになります
試したこと
本番環境をいじることになってしまうので、あまりいろいろいじることができないのがつらいところではありますが、試せることは試してみました。
nginx側で、PHPのエラーログが出力されるよう設定してみる
- /etc/php-fpm.confに、
catch_workers_output = yes
を追加してphp-fpm、nginxともに再起動してみた - /var/log/nginx/error.log、/var/log/php-fpm/php-fpm.log等を確認してみたものの、ログが吐かれている形跡はなかった
- エラーログファイルの権限周りをいじってみたものの、なにも変わらなかった
php.iniの設定でdisplay_errors = on
を設定してみる
- (あんまりやりたくはなかったのですが)設定したところ、正しく表示されるページにおいても、phpのOut of Memoryエラーが発生していることを確認しました。
/etc/php-fpm.d/www.confにphp_value[memory_limit] = 256M
を設定してみる
- 設定してみましたが、現象は変わりませんでした。
- -1に設定してもだめでした
補足情報(FW/ツールのバージョンなど)
ミドルウェア等の構成は以下です。
- Amazon Linux
- Movable Type Pro version 6.3.2
- nginx 1.10.1
- PHP 5.6.25
その他必要な情報がありましたらお知らせください。
nginxをあまり触ったことがなく、どうすればよいか途方に暮れております…
どなたかお知恵をお貸しいただけると助かります。よろしくお願いいたします。
あなたの回答
tips
プレビュー