MovableType引越中

a641b.jpgサーバリプレースに伴い、Movable Type を移転中です。詳しくない作業ばかりなので、いろいろ嵌ってます、あれこれと試行錯誤中。
本日のお天気は晴れのち曇り、ときどき雨です。

MovableType3.1 MySQL->SQLite

前鯖ではMySQLで動作させていたMT。MySQLには他にもWikiのDBとか勉強用に作り棄てたDBが散乱しており、そのまま持ってくるのは躊躇われる。またMySQLよりもSQLiteのほうが軽くてバックアップも引越もしやすい、という話を聞いてMySQLからSQLiteにデータコンバートすることにした。
※MovableType5ではSQLiteはサポートされないみたいだが…orz

既に便利なCGIスクリプトが用意されています(mt-db-convert.cgi)。

(1)上記スクリプトを動作させる前にまずDBを軽くする
MTにログインして迷惑トラックバック/コメントを綺麗に消す。またログも必要なければ綺麗に消してしまう。(大量のログはコンバートにも時間がかかります)

(2)スクリプトを実行してSQLiteのDBを生成
※一度コンバートに失敗しましたが、MTにログインしてシステム設定を保存しなおしたりしていたら上手くいきました。

あとはコンテンツをそのままコピーして、コピー先のmt-config.cgiのDB設定をMySQLからSQLiteに変更すればOK。

MovableType4系のカスタマイズ

MT3も暫く触っていなかったけれど、変わりにインストールしたMovableType4はテンプレートの構成が大きく変わっててちょっと混乱。まずは構成を把握します。
Movable Type 4 のテンプレート構造

テンプレートは構造化されてある程度部品化されている模様、またウィジェットという箱を作ってそのウィジェットの中はさらに構造化されている…とだけ理解。
構造化されているといってもどのみち構築時にすべてのタグはコンテンツに静的に落とされることに変わりはなく激しく概観をいじったりするたびにすべてを再構成しないといけないことに変わりはないらしい…という訳で早速PHP化する。PHP化のメリットはコンテンツをある程度動的にすることだけどあくまでMT中でカスタマイズを完結するためにブログの構成要素をばらしてテンプレート化しそれをウィジェットや上位のテンプレートからreadfileで読み出すようにする。これでモジュール化したテンプレートを変更しそのファイルだけを再構成することで動的に変更が反映される。
Movable Type 4 の PHP モジュール化

家庭内サーバにiPadでアクセス

ローカルネットワーク上に置いたWWWサーバにアクセスする際に外部に公開しているドメイン名でアクセスしようとしても正しくアクセスできない。例えば”jcch9.dip.jp”というドメイン名にはDynamicDNSサービスを利用しており、インターネット上では同サービス業者の提供するサービスでIPアドレス解決される訳だが、家庭内のローカルネットワークではインターネットとは異なるローカルIPで構成されているため、正しくWWWサーバを参照することが出来ない。そこで今まではhostsファイルによって名前解決してこれを解決してきた。(コンテンツの動作確認には外部のProxyを使用するがこれは遅い)
しかしiPadでhostsを触るためには脱獄が必要だ(iPadは自宅Wifi経由)。自作コンテンツの大半は参照を相対パスで記述しているのでIP参照でも問題無いが、MTやWikiなど出来合いのサーバソフトでは通常URLも絶対参照なのでそのままでは参照できない。そこでローカルネット専用のDNSサーバを立てることにした。

(1)DNSサーバといえばBIND、ということで公式サイトからダウンロードしてインストールする。
※主目的はローカルネットワーク内でのドメイン名解決なので、以下最小限の設定で進める。

(2)named.confの設定
・DNSデータベースのディレクトリ設定
・DNSサーバへのアクセス制限を設定
・ログファイルの設定
・ルートのゾーン設定
・逆引きループバックのゾーン設定
・正引きローカルネットワークドメインのゾーン設定
・逆引きローカルネットワークドメインのゾーン設定

(3)named.rootの設定
・ルートのゾーンファイルをダウンロードしてDNSデータベースに置く。
※named.confで解決できないアドレスを自宅内ルータに転送する設定にすれば不要。

(4)named.local/local.net.zone/192.168.X.revの設定

(5)設定ファイルのチェック
BINDと一緒にインストールされたチェックコマンドを使って(2)-(4)のファイルをチェック
・named-checkconfコマンド
・named-checkzoneコマンド
問題なければBINDをサービスとして起動。

(6)digコマンドでアドレスの動作確認

問題なく参照できていたらiPadのDNSサーバを自宅サーバのIPアドレスに変更してアクセスしてみよう。
ちなみにDHCPサーバからDNSサーバのIPアドレスを配信設定できるのであればそちらを変更するほうが便利だ。うちのルータはProxyDNSになってて設定できなかった。

 

MovableTypeからのメール送信(MovableTypeからSMTP認証+SSLでメール送信)

MovableTypeにはブログにコメントが付いたりユーザ登録があったりするとメールを送信する機能がある。デフォルトではsendmailから送信する設定なのだが、既に使用しているSMTPを経由してメールを送信したい、という場合はこのプラグイン(SMTP Auth Plugin)が便利だ。

その昔はSMTPが乱立しメールも送信し放題だったが、今ではウイルスやスパムメールの蔓延とその社会的な影響を背景にISPでは悪意のある顧客が自前のメールサーバから無闇にメール送信出来ないようにSMTPの送信をブロックするという対策が取られている(ゆわゆるOP25B)。そのため、ISPが提供する以外のSMTPサーバを利用するためにはSMTP認証を必須としたサブミッションポート(Port587)を使用する。

うちのISPも例外ではなく、メールの送信にはSMTP認証かPOP before SMTPが必要となる。折角なのでGmailのSMTPをつかってみることにした。設置方法は以下の通り。

(1)プラグインをダウンロードしてMTにインストール(ダウンロードファイルを/pluginsと/mt-static/pluginsに置く)

(2)プラグインの実行に必要なpealのmoduleをインストール(ppmを用いる)
 ※ActicePerlのppmをつかってダウンロードしたプラグインファイルのreademe.txtに書かれているmoduleを追加する。ActiveStateで見つからないときはリポジトリを追加(CPANあたりで揃う)。そのものずばりが見つからないときはライブラリに含まれていることもある。

(3)MTにログインしてシステムツールのプラグインメニューから「SMTP Autho 1.0」の設定を開いてSMTP認証の設定を入力。(Gmailのsmtpサーバは”smtp.gmail.com”)

(4)mt-config.cgiを開いてMailTransferオプションをsmtpauthに変更する。

設定後テストしてメールが送られることを確認しよう。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください