MovableType4 を mod_perl環境で動かす

設定概要

movabletype本体は ユーザ hoge の ~/MT4 配下に展開するのみ

コンテンツ配信には apache を利用して

  • 静的ファイルは apache2.0
  • 動的ファイルには apache1.3 のmod_perl で処理する2段構成

作成されたコンテンツ保存・配信するディレクトリを作成しアクセス権設定

コンテンツ用

~/blog/contents

js,css ファイル用

~/blog/mt-static

apache設定概要

  • Frontend は apache2.0
  • Port80で動作
  • blogコンテンツ静的ファイル配信用
  • /blog 以下でコンテンツ配信
  • /mt でアクセスがあると apache1.3 へ reverse proxy する
  • Backend に apache1.3
  • mod_perl をインストール(現在最新ver1.30)
  • Port8081 Listen 127.0.0.1 で動作
  • コンテンツ管理のためのプログラムをmod_perlで動作

設定

apache2.0側設定

設定ファイル

conf/blog.conf

Alias /blog "/home/hoge/blog/contents"
Alias /mt-static "/home/hoge/blog/mt-static"



<Directory "/home/hoge/blog/contents">
  AllowOverride None
</Directory>

<Directory "/home/hoge/blog/mt-static">
  AllowOverride None
</Directory>

httpd.conf

# mod_proxy の 設定/mt でアクセスされたとき apache1.3 に reverse proxy する

RewriteEngine On
RewriteRule ^/mt/(.*)$ http://127.0.0.1:8081/mt/$1 [P,NE,L]

# /mt 以下のアクセスを制限する 
# spam comment botよけのためのアクセス制限


<Location /mt>
  AllowOverride ALL
  Order allow,deny

 # spam deny
  deny from 65.214.44.208
  deny from 195.225.178.0/255.255.255.0
  deny from 194.110.161.0/255.255.255.0
  deny from 82.146.52.0/255.255.255.0
  Allow from All
</Location>
include conf/blog.conf

apache1.3 側設定

startup.pl

apache 起動時に必要なperlモジュール群を予めロードしておく

#!/usr/bin/perl

BEGIN
{
    use Apache ();
    use lib '/home/hoge/lib';
    $ENV{MTHome}='/usr/home/hoge/MT4';
}

# MYFavorite Modules ---
use Apache::Request;
use Apache::Cookie;
#use Apache::Connection;
use Apache::Constants;
#use Apache::Server;
#use Apache::Table;
use Apache::Registry;
use Apache::Reload;

use YAML;
use Template;
#use DBIx::Class;
#use DBIx::Class::Schema;
#use GD;
1;

apache1.3 設定ファイル

httpd.conf

PerlRequire /usr/local/etc/apache/startup.pl
PerlFreshRestart On

# --- MovableType4 Configration --- begin -
# Perl module load 

 use lib qw(

 /home/hoge/MT4/lib
 /home/hoge/MT4/extlib
 /home/hoge/MT4/plugins/MultiBlog/lib
 /home/hoge/MT4/plugins/spamlookup/lib
 /home/hoge/MT4/plugins/StyleCatcher/lib
 /home/hoge/MT4/plugins/Textile/lib
 /home/hoge/MT4/plugins/WidgetManager/lib
 /home/hoge/MT4/plugins/WXRImporter/lib
 /home/hoge/MT4/plugins/feeds-app-lite/lib
 /home/hoge/MT4/plugins/Markdown/lib
 /home/hoge/MT4/plugins/Cloner/lib
 /home/hoge/MT4/plugins/TemplateRefresh/lib
 );



PerlSetEnv MTConfig mt-config.cgi
PerlSetEnv MTHome /home/hoge/MT4
PerlSetEnv MT_HOME /home/hoge/MT4
PerlSetEnv MT_CONFIG mt-config.cgi
PerlModule MT::App::CMS

# perl handler settings ---

  SetHandler perl-script
  PerlHandler MT::App::CMS
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /home/hoge/MT4/


PerlModule MT::App::Comments

  SetHandler perl-script
  PerlHandler MT::App::Comments
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /usr/home/hoge/MT4


PerlModule MT::App::Trackback

  SetHandler perl-script
  PerlHandler MT::App::Trackback
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /usr/home/hoge/MT4


PerlModule MT::App::Search

  SetHandler perl-script
  PerlHandler MT::App::Search
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /usr/home/hoge/MT4


PerlModule Apache::XMLRPC::Lite
PerlModule MT::XMLRPCServer

  SetHandler perl-script
  PerlHandler Apache::XMLRPC::Lite
  PerlSetVar dispatch_to "blogger, metaWeblog, mt"
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /usr/home/hoge/MT4


PerlModule MT::AtomServer

  SetHandler perl-script
  PerlHandler MT::AtomServer
  PerlSetVar MTConfig /home/hoge/MT4/mt-config.cgi
  PerlSetVar MTHome /usr/home/hoge/MT4


# --- MovableType4 Configration --- end -

MT4 Config ファイル

~/MT4/mt-config.cgi

AdminScript app
CommentScript comments
TrackbackScript trackback
SearchScript search
XMLRPCScript xmlrpc
AtomScript atom

#======== REQUIRED SETTINGS ==========
CGIPath http://www.example.com/mt/

StaticWebPath http://www.example.com/mt-static/

StaticFilePath /usr/home/hoge/blog/mt-static

MT_HOME /usr/home/hoge/MT4
TransparentProxyIPs 1
#======== DATABASE SETTINGS ==========

ObjectDriver DBI::mysql
Database MT
DBUser hoge
DBPassword hogehoge
DBHost localhost

#======== MAIL =======================

MailTransfer sendmail
SMTPServer mail.example.com
SendMailPath /usr/sbin/sendmail

動作テスト

すべて設定が完了したら apache を起動させブラウザから以下のアドレスへアクセスして下さい。

http://hostname/mt/app

上手く行けばログイン画面が現れるはずです 初期id/passwordは「Melody/Nelson」だったはず

肝は

環境変数 $ENV{MT_HOME} を見てるので必ず設定する

問題点

  • MT4.01で動作
  • MT4.1では検索機能、captcha動作せず、不安定
created:

Back to top