Movable Typeのダイナミックパブリッシングで「An error occurs.」になる場合の対処
Movable Typeのダイナミックパブリッシングで「An error occurs.」になる場合の対処について紹介します。
1.問題点
Movable Typeにダイナミックパブリッシングを設定してページを開いたところ、「An error occurs.」というエラーが発生しました。
なお、下記は設定済です。
PHP の設定ファイル(php.ini)内にタイムゾーンの設定を記述し、ウェブサーバーを再起動
date.timezone = Asia/Tokyo
参考:Q.ダイナミックパブリッシングでエラー「ページが見つかりません。 An error occurs.」
httpd.conf に以下の記述を追加して再起動
<Directory /usr/local/apache/htdocs/mt>
AllowOverride All
</Directory>
2.対処
より詳細なエラーを取得するために、mt-config.cgiに
DebugMode 1
を設定してページにアクセスしたところ、「Deprecated: Function create_function() is deprecated」が表示されました。
調べたところ、PHP7.2以降でcreate_function()を実行すると、このエラーに遭遇するようです。
検証していたMovable Typeのバージョンは6.3.7で、php/extlibやphp/lib配下のPHPでcreate_function()が多数起動していました。
対処としてはMovable Typeを6.5.x以降にバージョンアップすることですが、create_function()のコードを書き換える方法もあるようです。
参考:PHP 7.2 で発生する「 Function create_function() is deprecated」エラーに対処する
3.その他
ダイナミックパブリッシングを簡単に動作確認するには、インデックステンプレートを作成し、中に
<MTDate>
の1行を書いて、ダイナミッパブリッシングで保存し、ページを開いたときに、
2021年8月 1日 16:25
という風に表示されればOKです。
- さくらインターネットで Movable Type のダイナミックパブリッシングによる500エラーを確実に解消する方法
- MT::FileInfoについて
- ダイナミック・パブリッシングで perl のプラグインを利用する
- Movable Type の再構築を不要にする「ダイナミック・パブリッシング」(その2:設定方法)
- Movable Type の再構築を不要にする「ダイナミック・パブリッシング」(その1:概要)