一つのMovableTypeシステムで複数のドメイン、サブドメインを運用する設定

複数のドメインやサブドメインを一つのMovableTypeで運用する場合にシステムディレクトリとかスタティックディレクトリをドメインごとに用意しないといけないのかと時々話題になったりするので、共有して一つでもできるよってやり方です。

Movable Type Multiple Domain Dashboad

たぶん、Webに公開されているディレクトリよりも上位のディレクトリにドメインが当てられている場合は.htaccessなどではできない気がします。(VirtualHostのドメインが下位の階層に設定される80codeみたいなサーバならできるかもしれません)

なので前提として、Apacheでの設定ができることが条件です。(この時点でできない案件が多いですが)
VirtualHostで設定します。

条件としては

  • http://primary.localhost/とhttp://secondery.localhost/の2つのドメイン
  • mtのシステムはプライマリに放り込む
  • どちらのドメインでもルートパス直下に /mt/へアクセスできるようにする
  • システムディレクトリを共有するので、登録ユーザやプラグインも共有されてしまう
/var/www/html   <-- 一般的な公開されるディレクトリ(今回は利用していない)
/var/www/vhosts/primary_domain      <-- 基本となるドメイン
/var/www/vhosts/secondery_domain  <-- 2つめのドメイン

それぞれのディレクトリの中身はこんな感じ

# ls -1 /var/www/vhosts/primary_domain/*
/var/www/vhosts/primary_domain/atom.xml
/var/www/vhosts/primary_domain/index.html
/var/www/vhosts/primary_domain/mt
/var/www/vhosts/primary_domain/mt.js
/var/www/vhosts/primary_domain/rsd.xml
/var/www/vhosts/primary_domain/styles.css
# ls -1 /var/www/vhosts/secondery_domain/*
/var/www/vhosts/secondery_domain/atom.xml
/var/www/vhosts/secondery_domain/index.html
/var/www/vhosts/secondery_domain/mt.js
/var/www/vhosts/secondery_domain/rsd.xml
/var/www/vhosts/secondery_domain/styles.css

というサーバの中身でseconderyには存在しないmtへのアクセスをprimaryで代用するVirtualHostの設定をします。

/etc/httpd/conf.d/あたりに設定ファイルを放り込んで、

# ls -1 /etc/httpd/conf.d/*domain.conf
/etc/httpd/conf.d/primary_domain.conf
/etc/httpd/conf.d/secondery_domain.conf

http://primary.localhost/の場合

<VirtualHost *:80>
  ServerName primary.localhost
  DocumentRoot /var/www/vhosts/primary_domain
  ErrorLog logs/primary.localhost-error_log
  CustomLog logs/primary.localhost-access_log common
  AddHandler cgi-script .cgi .pl
  <Directory /var/www/vhosts/primary_domain/>
  AllowOverride Options 
  Options ExecCGI
  </Directory>
</VirtualHost>

http://secondery.localhost/の場合

<VirtualHost *:80>
  ServerName secondery.localhost
  DocumentRoot /var/www/vhosts/secondery_domain
  ErrorLog logs/secondery.localhost-error_log
  CustomLog logs/secondery.localhost-access_log common
  AddHandler cgi-script .cgi .pl
  Alias /mt /var/www/vhosts/primary_domain/mt  # ここで/mt/にアクセスがあった場合にプライマリの/mt/へエイリアスする
  <Directory /var/www/vhosts/secondery_domain/>
  AllowOverride Options 
  Options ExecCGI
  </Directory>
</VirtualHost>

これでApacheをreloadします。

このようにすると、Movabletypeのシステムディレクトリを参照するようなパスは共通のシステムディレクトリへアクセスするようにすることができますね。

これで、膨大なファイルをアップロードしたり、貴重なハードディスクを消費しなくて快適Movable Type環境のできあがり。

※Alias でやるとhttp://secondery.localhost/mt/mt.cgiとかにアクセスすると蹴られるっぽいです。

Rlated & Feedbacks

http://www.trapon.jp/cms/mt-tb.cgi/243