環境
- Laravel 5.3
- PHP 5.6.12
- Postgresql 9.5.4
- mysql 5.1.73
- MovableType 6.3.2
LaravelやMovableTypeの導入に必要なドライバー等のインストールは既に完了しているものとする。
何がしたいか
- 既にLaravelでふつうにサイト構築しているものとする。
- http://example.com/ にアクセスすれば、welcome画面が表示されるとかそういうイメージ。
- ここで、http://example.com/cms にアクセスすれば、Movable Typeのログイン画面が表示され、あとはMTの管理画面でどうこうできるとかそんな感じ
考え方
Laravelはpublicの中にあるディレクトリは特にルーティングしなくても読み込んでくれる。
publicの中にcmsというディレクトリを作り、index.htmlを置いて、
http://example.com/cms/index.html にアクセスすれば、そのHTMLファイルが表示される。
ならば、このcmsというディレクトリをシンボリックリンクにして、MTのファイルを読み込むようにすればMTが動くのでは、と考えた。で、出来ました。
ディレクトリ構造
/var/www/program <- Laravel
/var/www/cgi-bin/mt <- MovableType
ドキュメントルートは /var/www/program/public
導入
シンボリックリンク作成
root権限で行ってください
ln -s /var/www/cgi-bin/mt /var/www/program/public/cms
まずはこの状態で http://example.com/cms/index.html にアクセスしてみる。
/var/www/cgi-bin/mt/index.html が読み込まれて、MTのログイン画面が表示されるはず。
次に、 http://example.com/cms にアクセスしてみると、
今度はLaravelの404エラーが出るはず。
これは /cms にアクセスした時にindex.htmlを読み込む設定をしていないため。
なので、Laravelのルーティングでindex.htmlを読み込むように設定する。
ルーティング
Route::get('/cms', function() { include public_path() . '/cms/index.html'; });
これで http://example.com/cms にアクセスしたらMTのログイン画面が表示されるはず。
パーミッション付与
MTがmysqlとかの設定をウィザードでちゃんとできるようにするために、書き込み権限を付与。
また、htmlを吐き出す場所も書き込めるようにする。
chown -R apache:apache /var/www/cgi-bin/mt/
chown -R apache:apache /var/www/program/public/test/
データベース作成
mysql -u root -p
CREATE DATABASE mt_test;
GRANT ALL PRIVILEGES ON mt_test.* to mt_test@localhost IDENTIFIED BY 'mt_test';
ウィザード実行
ここまでできたら後はMovable Typeのセットアップウィザードに従い、適切な情報を入力していく。
パス情報は次のような感じに
ウェブサイトURL:http://example.com/test/
ウェブサイトパス:/var/www/program/public/test
筆者が設定した情報(mt-config.cgi)はこんな感じ
# ======== REQUIRED SETTINGS ==========
CGIPath /cms/
StaticWebPath /cms/mt-static/
StaticFilePath /var/www/program/public/cms/mt-static
# ======== DATABASE SETTINGS ==========
ObjectDriver DBI::mysql
Database mt_test
DBUser mt_test
DBPassword mt_test
DBHost localhost
# ======== MAIL =======================
EmailAddressMain aaa@example.com
MailTransfer sendmail
SendMailPath /usr/lib/sendmail
DefaultLanguage ja
ImageDriver ImageMagick
ログイン
MTの管理画面が表示されたら完了。
なんかMTで記事作ったら、
http://example.com/test/2017/02/index.html とかにそういうHTMLファイルが入ってくるような感じ。
あとはよしなに。