Results tagged “Movable Type”

Oct 312017

Movable Type 6アップグレードメモ(MySQL 4 > 5.6アップグレード含む)@ heteml

2017年8月にheteml上で動作しているこのブログをMovable Typeを5から6にアップグレードした。
色々ややこしかったので、少し記憶が曖昧だがメモしておく。
うまくいかなくても責任は負いかねますので、自己責任で参考にして下さい。

簡単に済まなかったいくつかの理由・・・

とりあえず、Movable Type(以降MT)の「バックアップと復元」を使ってサクッと終わらせようと思ったが、タイムアウトで終了せず。php.iniでタイムアウト時間を延長したが、やはりタイムアウト。

ということで、「MySQL のバックアップ」で対応することにする。

MT6は、DBが「MySQL 5.x」以上が必要とのこと。(Movable Type 6 へのアップグレード

本ブログで使っていたDBはMySQL 4。ということで、phpMyAdmin(以降PMA)からDBをエクスポートしてMySQLをバージョンアップしようとしたが、「2016/07/27 20:08 「旧バージョン」のデータベース管理ツール『phpMyAdmin』 提供終了のお知らせ」とのことで、MySQL 4にPMAでアクセスNGなことが判明(涙

簡単に済ませるつもりが、そうは問屋が卸さないらしい・・・。

仕方がないので、「SSH接続でMySQL 4からエクスポート」+「MySQL 5.6にインポート」してから、「MT6にアップグレード」することにする。

Continue reading Movable Type 6アップグレードメモ(MySQL 4 > 5.6アップグレード含む)@ heteml.

Aug 162017

テスト投稿

5.161から6.3.5へアップグレード。
MTのバージョンアップよりも、MySQLのアップグレードの方が主目的。
phpMyAdminが使えず、うまくDBアップグレードできているか不安・・・。

ということでテスト投稿

Jan 172014

Movable type バージョンアップに伴うSPAM対策(2)

Movable type バージョンアップに伴うSPAM対策 - APEIROPHOBIAからの続き。
CAPTCHAでスパム投稿自体が減るかな?と思っていたのですが、実際公開されていないだけでスパムフィルタによって保留コメントにされているだけの状態でした。
しかも投稿数が400件/日ぐらいの量のため、人力で学習させる許容を超えていたため、別の方法を検討。

今回導入したプラグインはMT-Keystrokes

仕組みを簡単に書くと、コメント入力欄と投稿ボタンを人が操作しているかチェックすることで振り分けを行う感じ。hidden変数でその値をチェックしているだけなので、普及率が高くなれば対抗されてしまう可能性はあるけれど、藁にもすがる現状ということで試してみる。

導入はプラグインをインストールしてCommentsテンプレートを3箇所ほど変更するだけと非常に簡単ですが、一点注意があります。
上記サイト上からはv0.1.5として提供されていますが、実際ダウンロードされるのは0.1.4。
ダウンロードURLを0.1.5に変えると0.1.5がダウンロードできるのですが、導入してみたところ何故か正常な投稿もブロックされる状態になったため、0.1.4をStable versionとして利用しております。

ということでSPAMコメントの動向を見守りたいと思います。

Dec 102013

Google PageSpeed Insights

便利なサイトを見つけたのでご紹介。

Make the Web Faster -- Google Developers

調査したいURLを入力するとそのページをPC、スマホ別に細かく診断してくれます。
といってもLint的なものではないようで、どちらかというと表示スピード重視。

参考までにYahooさんの診断結果を貼っておきます。

2013-12-10_211537
2013-12-10_211542

ちなみにGoogleさんのページはモバイル:92点、PC:98点でした。
さすがです。(まぁ要素が少ないのですが)
PageSpeed Insights:https://www.google.co.jp/

Dec 102013

Movable type5.1でPHPインクルードを使ったスマホサイト切り分け

CSSなどのPC/スマフォの切り分けはCSS内で対応したのですが、GoogleのAdsense、AmazonのアフェリエイトバナーなどはJSなどで切り分けるとNGのようなので、サーバ側での切り替えを行うことに。
WordPressには"wp_is_mobile()"などという便利な関数があるらしいのですが、MTにはそれらしいものが見当たらず。MTIncludeなどを調べてみましたが、どーも対応できないっぽい。ダイナミックパブリッシングに関しての記述は多々あったのだけど、結構トラブル多いみたいなのでスタティックのまま、PHPインクルードで対応する方法を模索。
Googleさんで検索しても、マッチする情報が無かったので一応メモしておく。

まずはhtml拡張子で、phpが動作するように.htaccessを設定。
hetemlの場合はヘテムルレンタルサーバー|よくある質問:拡張子 .html で PHP を動作させたい。ということで、以下のみを設定してアップ。(他のBlogではgzip解除とか記述がありましたが、こちらは以下のみで稼働した)

AddHandler php5-script .html

次にブログ側の設定。
MT管理画面内対象ブログの「全般設定/モジュール設定」内

  • 「サーバーサイドインクルード」を「PHPのインクルード」に設定。
  • 「モジュールのキャッシュ:再構築の速度向上のために、テンプレートモジュール毎のキャッシュ設定を有効にする」はとりあえずOFF。(このへんはまた後日最適化)

これでブログの設定は完了。

Continue reading Movable type5.1でPHPインクルードを使ったスマホサイト切り分け.

Dec 102013

Movable type5.1でPHPインクルードを使ったスマホサイト切り分け

CSSなどのPC/スマフォの切り分けはCSS内で対応したのですが、GoogleのAdsense、AmazonのアフェリエイトバナーなどはJSなどで切り分けるとNGのようなので、サーバ側での切り替えを行うことに。
WordPressには"wp_is_mobile()"などという便利な関数があるらしいのですが、MTにはそれらしいものが見当たらず。MTIncludeなどを調べてみましたが、どーも対応できないっぽい。ダイナミックパブリッシングに関しての記述は多々あったのだけど、結構トラブル多いみたいなのでスタティックのまま、PHPインクルードで対応する方法を模索。
Googleさんで検索しても、マッチする情報が無かったので一応メモしておく。

まずはhtml拡張子で、phpが動作するように.htaccessを設定。
hetemlの場合はヘテムルレンタルサーバー|よくある質問:拡張子 .html で PHP を動作させたい。ということで、以下のみを設定してアップ。(他のBlogではgzip解除とか記述がありましたが、こちらは以下のみで稼働した)

AddHandler php5-script .html

次にブログ側の設定。
MT管理画面内対象ブログの「全般設定/モジュール設定」内

  • 「サーバーサイドインクルード」を「PHPのインクルード」に設定。
  • 「モジュールのキャッシュ:再構築の速度向上のために、テンプレートモジュール毎のキャッシュ設定を有効にする」はとりあえずOFF。(このへんはまた後日最適化)

これでブログの設定は完了。

Continue reading Movable type5.1でPHPインクルードを使ったスマホサイト切り分け.

Nov 262013

regex_replace検証用エントリ

Youtube(iframe変換:投稿済み記事内のyoutube動画をスマホ幅に合わせて表示 - APEIROPHOBIA

SyntaxHighlighter(過去指定タグの吸収:movabletypeにSyntaxHighlighterを追加 - APEIROPHOBIA

コード内に改行を含んだ場合+コード内改行コード発生を抑えるために本文とつなげてHTMLを記述していた場合のサンプル
XML.prototype.load2 = function(arg) {
	this.load(arg);
};
XML.prototype.load = function(arg) {
	this.load2(filePath+arg);
};
終わりもそのままテキストが続く。

テキストとコードをHTML的に1行で書いた場合のサンプル

<b>太字</b>です。<i>斜体</i>です。

Continue reading regex_replace検証用エントリ.

Nov 222013

movabletypeにSyntaxHighlighterを追加

HTML上に記述されたソースコードを整形、強調表示してくれるJSライブラリSyntaxHighlighterを、MT5にインストール。
MT3の時から利用していたが、しばらくみないうちにFlash連携によるコピペの機能などが割愛され、完全JS駆動になっておりました。(スマホ展開などが理由でしょうけど)

で、MT4のプラグイン化されたものがあり、これを使うと記事作成画面のフォーマットから制御できるらしい。
SyntaxHighlighter for Movable Type | kwLog

便利そうではあるが、コード部分の指定労力が最新版SyntaxHighlighterのと大差ない感じだったので、本家の最新版をインストール。

インストールは特に悩むことも無く、JSとCSSを一式アップロード。
利用する言語のブラシJSだけを読み込み処理して、Styleも適当に。
これで終わり。

ただなぜか縦スクロールが表示されて不格好な感じになっていたので、CSSを以下のように調整。
これで縦スクロールはでなくなった。(どっかの外人がoverflow-y: hidden !important;だ!とか書いていたけど・・)

/* syntaxhighlighter */
.syntaxhighlighter {
	margin: -1rem 0 1rem 0 !important;
	font-size: 1.4rem !important;
	padding: 1rem 0;
}

Nov 222013

movabletypeにSyntaxHighlighterを追加

HTML上に記述されたソースコードを整形、強調表示してくれるJSライブラリSyntaxHighlighterを、MT5にインストール。
MT3の時から利用していたが、しばらくみないうちにFlash連携によるコピペの機能などが割愛され、完全JS駆動になっておりました。(スマホ展開などが理由でしょうけど)

で、MT4のプラグイン化されたものがあり、これを使うと記事作成画面のフォーマットから制御できるらしい。
SyntaxHighlighter for Movable Type | kwLog

便利そうではあるが、コード部分の指定労力が最新版SyntaxHighlighterのと大差ない感じだったので、本家の最新版をインストール。

インストールは特に悩むことも無く、JSとCSSを一式アップロード。
利用する言語のブラシJSだけを読み込み処理して、Styleも適当に。
これで終わり。

ただなぜか縦スクロールが表示されて不格好な感じになっていたので、CSSを以下のように調整。
これで縦スクロールはでなくなった。(どっかの外人がoverflow-y: hidden !important;だ!とか書いていたけど・・)

/* syntaxhighlighter */
.syntaxhighlighter {
	margin: -1rem 0 1rem 0 !important;
	font-size: 1.4rem !important;
	padding: 1rem 0;
}

Nov 202013

投稿済み記事内のyoutube動画をスマホ幅に合わせて表示

CSSの設定など大枠はYoutubeやHTML5video等の埋め込み動画のサイズをwindow幅に合わせて動的にリサイズ/可変にする方法 | HTML5 - CSS3 magを参考に。
ここではMovable Typeでのタグの置換方法について。
記事内に埋め込まれているタグは

<iframe width="519" height="264" src="http://www.youtube.com/embed/uFoe0kcKGFg" frameborder="0" allowfullscreen></iframe>

な感じ。これをサイズ制御用のdivで囲む必要がある。

Movable Type管理画面の検索|置換では検索しか正規表現が使えないため、WordPressの様に記事自体の変更はできないが、グローバルモディファイアとしてregex_replaceというのがあるのでそれを利用する。
(つまりビルド時に置換処理を行ってHTMLを生成するということ)

Continue reading 投稿済み記事内のyoutube動画をスマホ幅に合わせて表示.

Nov 182013

Movable type バージョンアップに伴うEntryページURLの継承

既存ページのURLを継承するためにWordPressではなく、MovableTypeを選択したというのに、エントリーアーカイブのネーミングルールが継承されず、デフォルトの"Entry-basename.html"でEntryページが生成されているという事実が発覚。

バージョンアップ後投稿、編集したEntryはその名前でページ生成され、アーカイブ系ページからのリンク先もそのネーミングルールでリンクが設定。ただし、既存EntryページはそのままEntryIDベースの名前で生成されているため、全体としてリンクDeadのカタマリの状態になっていた。

そもそもアーカイブマッピング設定がバージョンアップで継承されないというのは予想外だったのだけど、それ以前にDB移設に伴うEntryIDの非継承を考慮するのを失念していた。

ということで、以前のEntryIDと新DBのEntryIDの一致を確認。(簡単にEntryIDの確認するには、MT管理画面の既存エントリー編集画面のURL内のidの値を参照)

幸いにも丸っとDBごと移植したからか、ズレは発生していなかった。

ということでEntryページのマッピングをEntryIDベースに変更する。

MTの管理画面から[デザイン]/[テンプレート]/[アーカイブテンプレート]:[Entry]を選択してテンプレート編集画面へ。
最下部の[テンプレートの設定]ブロック内の[アーカイブマッピング]部分から[カスタム]を選択し、以下設定。

%y/%m/%e.html

その他のルールを定義したい場合などは以下を参考に

Nov 182013

Movable type バージョンアップに伴うSPAM対策

これまでSPAMフィルターで表出していなかったSPAMが、バージョンアップ(Movable type 3.35から5.161へバージョンアップ - apeirophobia)に伴い全て表出する事態が発生。

これまでの学習が継承されていないのかは不明。
とりあえず1000件/日ペースで投下されるため、学習させるのもしんどいな~ということで、幸いサーバにImage:Magickがインストール済だったのでMT純正のCAPTCHAを利用することに。
ただしカスタムテンプレートがCAPTCHA非対応だったので、MTデフォルトのテンプレートに変更。
これでガツッと投稿レベルで全部ブロックできました。

[追記 20140117]
どうもCAPTCHAでは投稿自体をブロックできる状態ではないようなので、違う対策を検討することにしました。
Movable type バージョンアップに伴うSPAM対策(2) - APEIROPHOBIA

Nov 112013

Movable type 3.35から5.161へバージョンアップ

7年ぐらい前からver.3.35のままだった本ブログのシステムを、やっとこアップグレードしました。
途中ver.4を経由してアップグレードを試み失敗したりと右往左往しましたが、なんとか無事アップグレードできたのではないかと・・・(ただテンプレートがそのままってのはちょっと意外でしたけど・・・テンプレートってDBに入っているのかしら?)

いや、まだ詳しく確認してないので、なにか途方も無いバグを内包しているのかもしれません。
余力があったら詳細書きます

Continue reading Movable type 3.35から5.161へバージョンアップ.

Nov 202008

syntaxhighlighterを入れてみるの巻

ブログに記述したコードを自分で後でみても良く分からないぐらい汚いのでsyntaxhighlighterを導入することにしてみます。

1.まずsyntaxhighlighter - Google Codeからダウンロード
2.解凍して出来上がった"dp.SyntaxHighlighter"をサーバにアップ。(オデの場合はブログでサブドメインになっているので、そのサブドメインのドキュメントルートにアップ)
3.syntaxhighlighterのCSSを追加する。Movable Typeだとメインページ以外にもアーカイブ系にも追加。

<link rel="stylesheet" href="<$MTBlogURL$>dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" />

以下他にも色々追加しないといけないので、Movable typeだとモジュールで追加した方が楽かな?ということで以下モジュールベースで話を展開。

4."module.SyntaxHighlighter.txt"というテキストファイルを新規作成。
5.CSS設定の追加。"module.SyntaxHighlighter.txt"に以下の一文を記述。

<link rel="stylesheet" href="<$MTBlogURL$>dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" />

6.使用言語のshBrushスクリプト(パーサー?)を"module.SyntaxHighlighter.txt"に追記。
種類は


  1. shBrushCpp.js :C++
  2. shBrushCSharp.js : C#
  3. shBrushCss.js : CSS
  4. shBrushDelphi.js : Delphi
  5. shBrushJava.js : Java
  6. shBrushJScript.js : JavaScript
  7. shBrushPhp.js : PHP
  8. shBrushPython.js : Python
  9. shBrushRuby.js : Ruby
  10. shBrushSql.js : SQL
  11. shBrushVb.js : Visual Basic
  12. shBrushXml.js : XML
  13. shCore.js : COREこれは必須っぽい

といったところ。自分が使用するであろう言語だけ追記。XMLだけ使う場合はこんな感じ。

<script type="text/javascript" src="<$MTBlogURL$>dp.SyntaxHighlighter/Scripts/shCore.js"></script>  
<script type="text/javascript" src="<$MTBlogURL$>dp.SyntaxHighlighter/Scripts/shBrushXml.js"></script>  

7.クリップボードコピーの定義。Flashを介在してクリップボードにコードをコピーしているらしい。そのファイルは"/Scripts/clipboard.swf"。組み込みは

<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '<$MTBlogURL$>/flash/dp.SyntaxHighlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
Continue reading syntaxhighlighterを入れてみるの巻.

Nov 202008

syntaxhighlighterを入れてみるの巻

ブログに記述したコードを自分で後でみても良く分からないぐらい汚いのでsyntaxhighlighterを導入することにしてみます。

1.まずsyntaxhighlighter - Google Codeからダウンロード
2.解凍して出来上がった"dp.SyntaxHighlighter"をサーバにアップ。(オデの場合はブログでサブドメインになっているので、そのサブドメインのドキュメントルートにアップ)
3.syntaxhighlighterのCSSを追加する。Movable Typeだとメインページ以外にもアーカイブ系にも追加。

<link rel="stylesheet" href="<$MTBlogURL$>dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" />

以下他にも色々追加しないといけないので、Movable typeだとモジュールで追加した方が楽かな?ということで以下モジュールベースで話を展開。

4."module.SyntaxHighlighter.txt"というテキストファイルを新規作成。
5.CSS設定の追加。"module.SyntaxHighlighter.txt"に以下の一文を記述。

<link rel="stylesheet" href="<$MTBlogURL$>dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" />

6.使用言語のshBrushスクリプト(パーサー?)を"module.SyntaxHighlighter.txt"に追記。
種類は


  1. shBrushCpp.js :C++
  2. shBrushCSharp.js : C#
  3. shBrushCss.js : CSS
  4. shBrushDelphi.js : Delphi
  5. shBrushJava.js : Java
  6. shBrushJScript.js : JavaScript
  7. shBrushPhp.js : PHP
  8. shBrushPython.js : Python
  9. shBrushRuby.js : Ruby
  10. shBrushSql.js : SQL
  11. shBrushVb.js : Visual Basic
  12. shBrushXml.js : XML
  13. shCore.js : COREこれは必須っぽい

といったところ。自分が使用するであろう言語だけ追記。XMLだけ使う場合はこんな感じ。

<script type="text/javascript" src="<$MTBlogURL$>dp.SyntaxHighlighter/Scripts/shCore.js"></script>  
<script type="text/javascript" src="<$MTBlogURL$>dp.SyntaxHighlighter/Scripts/shBrushXml.js"></script>  

7.クリップボードコピーの定義。Flashを介在してクリップボードにコードをコピーしているらしい。そのファイルは"/Scripts/clipboard.swf"。組み込みは

<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = '<$MTBlogURL$>/flash/dp.SyntaxHighlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
Continue reading syntaxhighlighterを入れてみるの巻.

Oct 302008

<br />が入ったり入らなかったり

コードを各部分のタグに"<pre><code>"を使用しているのだけど、Movable Typeで記述すると通常はこのタグ内の文章にも改行部分には"<br />"が入っている。
しかし、稀に入らない時がある。

<br />が入ることを前提にここのCSSはline-heightをかなり狭く設定しているので、急に<br />が入らなかったりするとえらい詰まって表示されてしまう。

apeirophobia: progression検証 #7 外部データをpreloaderで読み込んでみる(XML編)のエントリーがそうなのだけど、何が違うのか良く分からん・・・。コピペすると駄目だとでも言うのだろうか?

ということで試してみる。手書きで書いてみる。

いろはにほへと
ちりぬるを

どうだろう?<br />が入っているだろうか?

Oct 302008

<br />が入ったり入らなかったり

コードを各部分のタグに"<pre><code>"を使用しているのだけど、Movable Typeで記述すると通常はこのタグ内の文章にも改行部分には"<br />"が入っている。
しかし、稀に入らない時がある。

<br />が入ることを前提にここのCSSはline-heightをかなり狭く設定しているので、急に<br />が入らなかったりするとえらい詰まって表示されてしまう。

apeirophobia: progression検証 #7 外部データをpreloaderで読み込んでみる(XML編)のエントリーがそうなのだけど、何が違うのか良く分からん・・・。コピペすると駄目だとでも言うのだろうか?

ということで試してみる。手書きで書いてみる。

いろはにほへと
ちりぬるを

どうだろう?<br />が入っているだろうか?

Jan 252008

MovableTypeのアップグレードが何度も実行される(mt-upgrade.cgi)

なんかよくわからないのだけど、最近このブログの管理画面にアクセスすると
「アップグレードします」画面が表示される。

これ確かMTのバージョンアップの際に1度使用した画面なのだけど
もうアップグレードしているのに何故何度も出てくるのか?

一瞬なにかDBが壊れたんじゃないか?とドキドキするのだけど
特に問題なくアップグレードは完了してその後はいつもどおり使える。

ちとググってみたのだけど、明確な回答はまだ見つかっていない。

ちなみに1度アップグレードに使用するファイル
・ mt-upgrade.cgi
・ mt-wizard.cgi
・ mt-testbg.cgi
の存在が問題なのかと思い削除しみてみたが、それでもmt-upgrade.cgiにアクセスしおった。
うっとおしい。

Jan 252008

MovableTypeのアップグレードが何度も実行される(mt-upgrade.cgi)

なんかよくわからないのだけど、最近このブログの管理画面にアクセスすると
「アップグレードします」画面が表示される。

これ確かMTのバージョンアップの際に1度使用した画面なのだけど
もうアップグレードしているのに何故何度も出てくるのか?

一瞬なにかDBが壊れたんじゃないか?とドキドキするのだけど
特に問題なくアップグレードは完了してその後はいつもどおり使える。

ちとググってみたのだけど、明確な回答はまだ見つかっていない。

ちなみに1度アップグレードに使用するファイル
・ mt-upgrade.cgi
・ mt-wizard.cgi
・ mt-testbg.cgi
の存在が問題なのかと思い削除しみてみたが、それでもmt-upgrade.cgiにアクセスしおった。
うっとおしい。

Jun 052007

Movable Typeでコメントの投稿時間にタイムゾーンが適応されない

ちとはじめてのケースなのですが、MovableTypeでコメントを投稿した際に、そのコメントの投稿時間にタイムゾーンが適応されず、世界標準時が表示されてしまいます。(日本設定なので、日本の時間から-9時間)
エントリーの投稿時間はキチンとタイムゾーンに適応した時刻が表示されています。
テンプレートタグかなにかのミスかなと思ったのですが、どーもちがうっぽい。
そもそも管理画面でコメント一覧を見た際に、既に9時間前の投稿になっている。
つまりシステムに送られた際にすでになにかおかしい(それか受け取るシステムがおかしい)という感じです。

エントリーの投稿時間にタイムゾーンが適応されていて、またブログの設定画面でもタイムゾーンはキチンと日本に設定してある。ということでどこが問題なのかしら?と途方にくれております。

ググッてみても、いまいち同じケースに遭遇しない。
ちなみにホスティングはこのブログと同じヘテムルなのですが、サーバは違うかもしれません。
(といってもエントリーの投稿時間はキチンとしているのだから、正常に動いている部分もあるわけで・・)

んーあーー。

ちなみに新規ブログを作成して、標準テンプレートで試してみてもやはりコメントの投稿時間は9時間ずれています・・。

なんででしょう?
教えてエロイ人!

2 3  

Search and Archives

Tags