XREAサーバでのオープンソースによる運用・カスタマイズのマニュアル的ブログ。
メモ代わり、備忘録なので、詳しくは解説してないかもw
最近オープンソース以外の備忘録も書いてます。
トップページ > movabletype(ブログ)
★CRON を動かすシェルスクリプト作成
#!/bin/sh
cd /virtual/*****/public_html/mt/
/usr/bin/perl ./tools/run-periodic-tasks
echo
exit
Terapad などテキストエディタへ上記をペースト。
***** の部分を、設置したい xrea サーバのアカウントにする。
/public_html/mt/ の部分はサーバ上の「mt.cgi」が入っているディレクトリにあわせて変更。
このファイルを「改行コード」を「LFのみ(UNIX)」として仮に「cron1.sh」として保存。
サーバの、/public_html/mt/などへアップロードし、属性パーミッションを 700 以上に変更(当ブログは 700)
サーバ上の、「mt/tools/run-periodic-tasks」の属性パーミッションを 700 以上に変更(当ブログは 700)
★cron ジョブの設定
xrea の管理画面にログインし、サーバーアカウントの「サーバ設定」をクリックし、コントロールパネルへ入室。
画面左ブロックの「管理メニュー」より「CRON ジョブ」をクリック。
「/virtual/アカウント名/」の右の入力BOXへ、アップロードした「cron1.sh」までのパスを「/virtual/アカウント名/」から続く形で入力。
※ 上記の例の場合、「public_html/mt/cron1.sh」となる。
CRON ジョブの編集画面で、「分」「時」「日」「月」「曜日」(投稿時間の間隔)を編集。
※ 指定日投稿の機能は MT 側で指定した時間にすぐさま反映されるものではない
※ CRON で設定された時間がくるまでは、MT 側から何本指定日機能で投稿が行われようと実際のサイト上には反映されない。
※ CRON が動作したときにはじめて投稿した記事がサイトに表示される。
「分」
何分に働かせるのか。「分」を「0」、それ以外を「*」にすると一時間毎の0分に投稿される。
「時」
「時」を「10」とすると、毎日 10 時に働く。
「時」を「*/5」とすると 5 時間ごとの 0 分に働く。
※ サーバに負担がかかってしまうので、最短でも一時間以上は時間を空けたほうが良い
※ サーバーが落ちるほどの負荷をかけた場合、アカウント削除の危険もあり
「日」
当ブログは「*」に設定
「月」
当ブログは「*」に設定
「曜日」
当ブログは「*」に設定
ブログパーツのフラッシュタグクラウドの日本語化に成功しました。
MT-Cumulus導入時に日本語化が不可という記載がありましたが、どうしても日本語表示がしたかったので吐き出す出力URLあたりをいじったら・・・
すんなり出来ちゃいました♪
1.mt/plugins/Cumulus/lib/Cumulus.pmの133行目
$tags .= "<a href=\"" . $cgipath . "mt-search.cgi?blog_id=" . $blogId . "&tag=" . $tagcloudtag->[0] . "&limit=20\" class=\"tag-link-66\" title=\"" . $tagcloudtag->[1] . " topics\" rel=\"tag\" style=\"font-size: " . $size . "pt;\">" . $tagcloudtag->[0] . "</a>\n";
を
$tags .= "<a href=\"" . $cgipath . "mt-search.cgi?blog_id=" . $blogId . "&tag=" . URI::Escape::uri_escape($tagcloudtag->[0]) . "&limit=20\" class=\"tag-link-66\" title=\"" . $tagcloudtag->[1] . " topics\" rel=\"tag\" style=\"font-size: " . $size . "pt;\">" . $tagcloudtag->[0] . "</a>\n";
に変更。
要は$tagcloudtag->[0]をURI::Escape::uri_escape($tagcloudtag->[0])に書き換えるだけです。
やってることは、日本語をエスケープさせて出力するといったものです。
一応いくつかのブラウザでチェックはしましたが大丈夫だと思います。
不具合あればコメントでも下さい♪
記事を書いていくとタブクラウド欄に同じタグが重複して表示されていました。
データベースの照合順序と文字コードをブログと合わせるだけですので簡単に修正できます。
1.movabletypeのシステムメニューのバックアップとphpmyadminから念のためバックアップをとっておく(ローカルに保存)。
2.XREAデータベースの作成画面でmovabletypeで使用しているデータベースを選択し、『保存』
3.1~3分でdumpファイルが生成されるのでFTP接続で生成されたdumpファイルをローカルに保存します。
4.エディタでdumpファイルを開き、以下を置き換えて保存(10箇所以上あります)
DEFAULT CHARSET=ujis
を
DEFAULT CHARSET=utf8 COLLATE utf8_general_ci
5.FTPで上書きアップロードします。
6.phpmyadminからmovabletypeで使用しているデータベースのテーブルを全て削除します。
(データベースを選択すると右側に全てのテーブルが表示されるので全てにチェックを付けて「チェックしたものを」⇒「削除」のプルダウン選択)
7.インポートから先ほど保存したローカルのdumpファイルを選択し「実行」
これでデータベースの照合順序と文字コードはブログと一致しました。
8.movabletypeにログインし、重複している記事を再度ひとつずつ再構築(保存)していきます。
9.全体の再構築を行います。
1度では全て整わないこともあるようです(hiroは2回再構築してまとまりました)。
MT4.25の投稿記事内で「①」「~」が文字化けする不具合を修正。
①phpmyadminでデータベースにログインしバッグアップ(エクスポート)
②左側に表示されているテーブルで「mt_entry」「mt_tag」「mt_comment」「mt_trackback」の中の
照合順序を ujs_Japanese_ci → utf8_general_ciに変更
例えば「mt_entry」テーブルなら「mt_entry」をクリックした後、右側に出てきた構造の中に「照合順序」でujs_Japanese_ciと記載あるもの全てにチェックし鉛筆マーク(下側)をクリック。
チェックしたフィールドだけが表示されるのでそれぞれ「照合順序」のプルダウンをujs_Japanese_ciからutf8_general_ciに変更し保存。
この作業を「mt_tag」「mt_comment」「mt_trackback」でも行います。
※投稿済み記事で文字化けしてしまっているものに関しては文字化け部分を再度修正して保存(投稿)する必要があります。
この作業の後の新規投稿に関しては文字化けは直っているはずです。
認証画像の変更をしたついでに認証画像周辺のタグもいじっちゃいます。
機能していない<div>とかありますからw
1.mt/lib/MT/UtilフォルダのCaptcha.pmをダウンロードし58行目付近
<div class="label"><label for="captcha_code">$caption:</label></div>
<div class="field">
<input type="hidden" name="token" value="$token" />
<img src="$cgipath$commentscript/captcha/$blog_id/$token" width="150" height="35" /><br />
<input name="captcha_code" id="captcha_code" value="" autocomplete="off" />
<p>$description</p>
</div>
を
<label for="captcha-code">$caption</label>
<input type="hidden" name="token" value="$token" />
<img src="$cgipath$commentscript/captcha/$blog_id/$token" width="150" height="35" alt="" /><br />
<input name="captcha_code" id="captcha-code" value="" autocomplete="off" />
<p>$description</p>
に変更。
<label for="captcha-code">のアンダーバー、imgタグのalt、使われていないdivの削除をしました。
movabletype4.25のデフォルトでコメント投稿欄に『Captcha』を出す設定にしてもXREAサーバの利用で表示されない不具合(バグ?)がある。
これを解決するにはファイルを若干変更する。
1.mt/lib/MT/Utilフォルダ内のCaptcha.pmをローカルにダウンロードし、
185行目付近の
my $im = $imbase->Montage(geometry => $geometry_str,tile => $tile_geom);
を
my $im = $imbase->Append(stack=>"");
に書き換えて再構築。
これで見事認証画像が表示されます。
先月にテンプレートのバックアップ記事を書いたけど、もうバックアップ必要なかったんだねw
システムでちゃんとデフォルトテンプレートが保存されてた。
いつもいじり倒してバックアップー!!ってなってたから(笑)
※このブログは未だ3.34・・・
mt/mt-static/addons/Commercial.pack/themes/professional-black
テンプレート使用時
</div> </div> <$mt:Include module="サイドバー"$> </div> </div> <div id="footer"> <div id="footer-inner"> <div id="footer-content"> <$mt:Include widget="Powered By (フッター)"$> <$mt:Include widget="フッターのリンク"$><mt:BlogIfCCLicense> <div class="widget-creative-commons widget"> <div class="widget-content"> このブログは<a href="<$mt:BlogCCLicenseURL$>">クリエイティブ・コモンズ</a>でライセンスされています。 </div> </div></mt:BlogIfCCLicense> </div> </div> </div> </div> </div></body></html>
いつも通り?テンプレートタグをいじり倒すので、バグった時にいつでも元に戻せるようにこれからこのブログでバックアップをとっていきたいですw
しっかしMT4.25はガラっと変わりました。
一昔のMTに慣れすぎてるhiroにとってはファイルの場所を見つけるだけでかなりの苦労・・・
このサイトでは右側にコメント投稿を表示させていますが、
コメント頂いたエントリーのタイトルが長いと2列になり見た目が悪くなってしまいます。
そこで表示させる文字数を設定して、その文字数をオーバーすると「...」で表示させるよう設定できます。
(hiro作成HPのMAXBETでは実装済み)
文字コードがUTF-8のみ対応のブログパーツに読み込ますXMLファイルがShift-JISの場合の文字コード変換プラグインです。
(文字コードの変換ならUTF-8以外でもOK)
hiroが運営しておりますMAXBETのブログカレンダーのXML読み込みがShift-JISでうまくいかなかったためUTF-8に変換するプラグインを導入することにより正常動作しました。
続きを読む "文字コード変換 MT-I18Nプラグイン" »
エントリー内容を書き込む際、よくフォントのサイズを変えたりしませんか?
当サイトではソースを載せる時に<font size=1px></font>を使用しています。
そこで毎回毎回<font size=1px></font>を打つのも面倒なのでフォントサイズを適用したい箇所を選択(反転)させてボタンをクリックするだけでフォントタグを挿入できるようにしました。
続きを読む "エントリー投稿欄にフォントサイズボタンを追加" »
コメントスパムの大半は英語のみなのでそれに対する対策を施しました。
mt-comments.cgi の11行目に
my $txt = param('text');
if(($txt ne "") && ($txt !~ m/[\x80-\xff]/)){die('error')};
を追記。
1/22にセキュリティ面を向上させたバージョンがリリースされました。
アップグレードは非常に簡単ですので手順を記載します。
なおアップグレード後はカスタマイズした箇所を一部再度カスタマイズしなおす必要があります。
続きを読む "MovableType3.34へのアップグレード" »
このブログ内のスクリプト記載で、
フォントの関係で「¥(円マーク)」の表記が「\(バックスラッシュ)」
になってしまっていますが、
エディタで編集するときには¥(これは全角ですが、ホントは半角です)となります。
「\(バックスラッシュ)」と見えていてもコピペは問題ありません。
(ブラウザでそれぞれ見え方も違うので「¥(円マーク)」のまま見えてる方もいらっしゃると思いますが念のため)
エントリー投稿欄には簡易タグボタンが付いていますが、
よく使う<font color=""></font>がありません。
そこで色指定ボタンを追加しました。
ボタンの横に
が追加されます。
1.まず上の色ボタンをダウンロードし(右クリック→名前をつけて画像を保存)、
./mt-static/images
の中にアップロードします。
MovableType用EntityRefButtonプラグイン v0.0.5を実装しました。
これはエントリー編集画面およびクイック投稿画面に追加される「&(アンパサンド)」ボタンを押すだけで、選択した文字列を実体参照化してくれる便利なプラグインです。
(エントリー中にタグを表記したいときに便利です)
こちらのサイトからDL出来ます。
詳しく導入方法も記載されています。
エントリー投稿欄には、エントリーの内容に簡易リンクボタンがありますが、
デフォルトでは「target="_blank"」がない為
別ページで表示させたいときは手打ちでタグを書かないといけなかったのを簡易にしました。
./mt-static/mt.js の321行目
setSelection(e, '<a href="' + my_link + '">' + str + '</a>');
をsetSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');
に変更
atom.xmlを生成するテンプレートをそのまま利用していると、2007年に入ってから再構築したときに内容が変わってしまい、ブログの購読者(あなたのブログのAtomフィードを購読している読者)の側で、未読ではない記事が未読として表示されてしまうなどの軽微な問題が起こる可能性があります。
という不具合(実際2007年になってみないと何がどういう問題なのかも不明らしいが・・・)の修正をします。
Atomフィードの不具合について(six apart)
メインページ右カラムに天気予報表示させました。
drk7.jpさんのプラグインをダウンロードし、サーバへアップロードします。
月送り可能なカレンダーを実装しました。
リアルタイムカレンダー(本日の日付の装飾)および土・日・休日表示も盛り込まれています。
ただエントリーを元にしたカレンダーですので記載の無い月は表示されません。
(当然未来のカレンダーも)
下にスクロールし終わった時にページTOPに戻りやすく出来るよう、
「▲このページのTOPへ」のタグをそれぞれのテンプレートに追記しました。
movable typeのテンプレートの中にアーカイブページがあります。
それをhtmlからphpに出力変更し、過去記事の「一覧表示」をしてリンクしました。
テンプレートのarchives.htmlをエントリーの題名のみを表示させるようカスタマイズしました。
このページは2カラムにし、メイン部分に以下のようなタグを打ち込みました
<a href="<$MTBlogURL$>">TOPページに戻る</a>
<ul class="archive-list">
<MTArchiveList archive_type="Individual">
<li class="archive-list-item"><$MTArchiveDate format="%Y.%m.%d"$>: <a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
</ul>
パンくずリストとは、トップページから現在表示しているページまでの階層を示したリストのことです。
今どこのページを閲覧しているか判断させやすくします。
例)
トップページのページ分割をする方法です。
トップページの表示記事数は設定できますが多く設定しぎるとページの読み込みに時間が掛かったり下へのスクロールも面倒になります、逆に少なくしすぎても前記事を読みたいときには不便です。
そこでこのプラグインが役立ちます。
「環境設定」から「カテゴリー」をクリックし、カテゴリーを作成します。
当サイトでいう
・まずはじめに
・XREA(サーバ)
・movabletype(ブログ)
・oscommerce(カート)
・zencart(カート)
の部分ですね。
このカテゴリーの表示順序が50音になってしまいますので、自分の好きなように並べ替えます。
個人の趣味ブログでも著作権表記はしたいですよね♪
当サイトでは以下のタグを「メインページ(index.php)」「アーカイブページ(archives.php)」「カテゴリーアーカイブ」「日付アーカイブ」「エントリーアーカイブ」に追記しました。
もちろんスタイル部はcssで追記してもOKです。
(そっちのほうが良いかな)
<div style="clear:both; text-align: center; font-size:small; background-color: #000000; color: #FFFFFF;">
Copyright 2006 © hiro@Media BROS</div>
3.2から「Backup and Refresh」というバックアッププラグインがありますが、僕はよくやり忘れるので以下のデフォルトのテンプレートタグを残しておきます。
・Atom
・Dynamic Site Bootstrapper
・RSD
・RSS 2.0
・Site JavaScript
・アーカイブページ
・スタイルシート
・メインページ(index.html)
・エントリー・アーカイブ
・カテゴリー・アーカイブ
・日付アーカイブ
・コメント・プレビュー
・検索結果
・コメント・保留
・コメント・エラー
・画像のポップアップ・ウィンドウ
・ ダイナミックページ・エラー
・トラックバックの一覧
閲覧はコチラから。
「設定」画面を「詳細モードに切り替え」をクリックし「公開」タブをクリック。
ここで設定するのは公開するページの「拡張子」です。
デフォルトでは「html」になっていますので「php」に変更します。
またテンプレートの「メインページ」の「出力ファイル名」も「index.php」に変更しておきます。
(FFFTPでindex.htmlが残っている場合は削除します。)
ログインしたら「はじめにブログの設定をしてください。」をクリックします。
「ブログ名」を決め「変更を保存」をクリックし、「サイトの再構築」で反映させます。
再構築とは設定や新規のエントリーなど手を加えたものをサイトに反映させる事です。
非常に重要ですので忘れないようにしましょう♪
再構築したら自分のサイトを確認してみましょう。
デフォルトでは味気ないデザインですが無事自分のブログの完成です!
これから色々設定していきましょう♪
続いてmovable type3.3のインストールを行います。
ブラウザから「http://サイト名/mt.cgi」にアクセスします。
任意のフォルダを作成している場合は「http://サイト名/フォルダ名/mt.cgi」
になります。
アップロードと属性変更が終わればチェックファイルで確認します。
確認方法は「http://サイト名/mt-check.cgi」になります。
任意フォルダを作成している場合は「http://サイト名/任意のフォルダ名/mt-check.cgi」です。
上記URLをブラウザに入力すると、自分のサーバーで何が使えるかが表示されます。
一番下に「Movable Typeのシステム・チェックは、無事に完了しました。」と出れば設定はOKです。
ファイルを全てアップロードしたら全てのcgiファイルの属性を変更します。
属性とはアクセス権利の設定で、cgiのようなプログラムファイルは正常に動作するよう属性を設定しなければいけません。
FFFTPを起動しホスト一覧から設定したホスト(自分のレンタルサーバ)を選択し接続します。
左側のローカルにmovable typeのフォルダを開きます。
(「MT-3.33-ja」フォルダ以下「mt-config.cgi」のファイルがある階層)
右側のサーバにはpublic_htmlを開いておきます。
(まだTOPページがなければ「log」というフォルダのみが表示されていると思います)
解凍したMT-3.3-jaフォルダの中に「mt-config.cgi-original」というファイルがあります。
このファイルの名前をmt-config.cgiと変え、UTF-8で保存します。
UTF-8とは文字コードの種類です。
ファイル中の「#」はコメント、無効の意味です。
このファイルにドメイン、データベースの設定をします。
Movable Type3.3本体をダウンロードします。
無償と有償のライセンスがありますが、
(詳細はこちら)
個人でしたら無償ライセンスでいいでしょう。
色んなブログのサービスがありますが、自分好みのブログを簡単に作成できるのがMovableType(ムーバブルタイプ)です。
拡張性もありますが、なんといっても大きなメリットが「検索に強い」事です。