LoginSignup
0
4

More than 5 years have passed since last update.

LaravelとMovable Typeを共存させる

Last updated at Posted at 2017-02-15

環境

  • 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ファイルが入ってくるような感じ。
あとはよしなに。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4