クラウド版MTをちょっとさわってみた

| コメント(1) | トラックバック(0)

本当は、"DynamicMTMLをクラウド版MTで動かす"というエントリにする予定だったけど、今のところ途中までしか確認できていない。ので題名変えた(><。

動きました。追記した。

現在公開されているDynamicMTMLはMTOSをターゲットとしていたのでGPLv2なので、MT6で動かすためには色々調整(大人の事情も含めて)が必要なのですが、MTクラウド版の仕様やPHPまわりのメモ的に書いておきます。

確認したのはS4100iプラン。確認したのはPowerCMS4.0に同梱のDynamicMTML2.0の最新版で、公開しているGPL版とは少し異なります。

クラウド版のMTでは、addonsが設置できないので、plugins以下にアップする

DynamicMTML.packはplugins以下に設置しても動作自体には問題ないようです。 クラウド版MTにFTPSでアクセスすると、以下のようなディレクトリ構成になっていますので、DynamicMTML.pack を plugins以下にアップします。

クラウド版MTにFTPSでアクセス

追加したプラグインを認識させるには、システム全般設定を保存する

プラグインを追加するだけでは、クラウド版MTはプラグインを認識してくれません。(nginx+PSGIなので常駐している)

追加したプラグインを認識させるには、システム全般設定を保存します。以下の画面ですね。何も設定変更は必要ありません。ただ、この画面を開いて「保存」してください。これでプラグインが認識されるようになります。

システム全般設定

クラウド版のMTでは、mt-config.cgi を編集できない

環境変数の管理

システムスコープで、「クラウドサービス」→「MT環境変数」を選択して必要な環境変数をここに追加する必要があります。DynamicMTMLを動かすのに必要な最小限の設定は、PowerCMSFilesDir環境変数です。これがないと、app/movabletype以下に powercms_filesディレクトリを作成しにいって、ここでコケます(パーミッションがないので)。

このMT環境変数画面で設定できるようにするためには、プラグイン側に修正が必要です。DynamicMTML.pack/config.yaml の config_settings: 以下に、PowerCMSFilesDir、updatable: 1を追加します。

config_settings:
    PowerCMSFilesDir:
        updatable: 1

追加した後は、システム全般設定を保存し直してください。

FTPSでアクセスした時に見えているディレクトリは、/data/file 以下のようです。よって、FTPSで /mt-static/support/powercms_files を作成し、 PowerCMSFilesDirには /data/file/mt-static/support/powercms_files を指定します(plugins以下でもいいのですが。本当は、こういう用途向けに任意のディレクトリを作成できるか、それ向けのディレクトリがあるといいと思うのですがね)。

クラウド版のMTでは、PHPファイルの更新時にも全般設定の保存が必要

これ、常駐しちゃうんですよね。nginx経由で、PHPハンドラを指定して動かしている? みたいで、PHPのプラグインや、そもそも拡張子を.phpにしたファイルも更新しただけでは表示させてみても表示内容が変わらないです。

<?php
echo 1;
?>

というファイルをtest.phpとして設置して表示、結果は「1」。

<?php
echo 2;
?>

に変更して保存、表示、結果は「1」。変更されません。 全般設定を保存すると更新されます。これ、MTからphpを出力して動的に動かすサイトなどによっては、色々問題がありますね。回避する方法があるのでしょうか。

これも、追記

上記のPHPの更新ですが、管理画面にインデックステンプレートを作って更新したら即時反映されますね。何か謎が多いぞ(試行錯誤するより聞いたほうが早いという気になってきた)。

クラウド版MTでは phpinfo は使えないっぽい

尚、上記の通り、phpinfoは使えないっぽいです。PHPの設定とかバージョンとかはどっかにありまっしたっけ?

.htaccessについては注意が必要

MTのダイナミックパブリッシング用の .htaccessはちゃんと動きます。ただ、DynamicMTML用の存在するファイルをリライトするところが動いていません。なので、(きっと)続く

追記。動いた。.htaccessをとりあえずそのまま貼っておきます。

##
## DynamicMTML generated this part; don't remove this line! ##
## <version>2.01</version>
## <bootstrapper>.mtview.php</bootstrapper>

Options -Indexes
DirectoryIndex /.mtview.php
<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f [OR]
  RewriteCond %{REQUEST_FILENAME} -d [OR]
#  RewriteCond %{REQUEST_FILENAME} !/mt-static/html/editor-content\.html$ [NC]
#  RewriteCond %{REQUEST_FILENAME} !/mt-static/html/blank\.html$ [NC]
  RewriteCond %{REQUEST_FILENAME} ^[^.]+$|\.(html|mtml|HTML|MTML)$ [NC]
  RewriteRule ^ /.mtview.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
  Order Deny,Allow
  Deny from all
<FilesMatch (^(|[^.]+)|.mtview.php)$>
  Allow from all
</FilesMatch>
  ErrorDocument 403 /.mtview.php
  ErrorDocument 404 /.mtview.php
</IfModule>
php_flag short_open_tag off
## DynamicMTML generated this part; don't remove this line! /DynamicMTML ##

さらに追記

クラウド版MTで、DynamicMTMLが吐き出した.htaccessが動かなかった原因が、わかった!

ウェブサイトの設定が、

http://xxxxxxx.xxx.jp

最後に、/ がなかったのでした。ハマりがちなので、注意、ね。

さらにもう一つ追記

PowerCMSFilesDir を /mt-static/support/powercms_files にすると、Webアクセスで見えてしまうので、ドキュメントルート以下にしてBasic認証をかけるか(Basic認証は管理画面でかけられる)、/data/file/backup/powercms_files とかにしたほうが良いかもしれない。ただ、backup 以下の挙動がわかんないので(いつファイルができて、ひょっとして、削除されたりするんかいな)、やっぱりそういう用途のディレクトリがあったほうがいいね。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/824

コメント(1)

PHPは1時間キャッシュされるそうなのでCache-Controlヘッダを出力してキャッシュされないようにすれば回避できる。htaccessはそもそも使えないはず。

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2014年4月30日 16:51に書いたブログ記事です。

ひとつ前のブログ記事は「社長ともっと話そう。」です。

次のブログ記事は「毎日ブログ記事を書くために、ツールにできる工夫って結構あるよね。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6