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: