SOY CMS + WordPress on CORESERVER

Ken published on
3 min, 464 words

Categories: Tips

CORESERVERでSOY CMSとWordPressを併設するとPHPの動作の違いで悩む。 簡単にいうと、PHPのモジュールモードとCGIモードが混在する環境での話です。

SOY CMSはCGIモードで動作させる必要がある。 (正確にはセーフモード絡みに起因するけど、CORESERVERではこうやって動かす) WordPressはCGIモードで動作させると管理画面のUIが崩れるため、モジュールモードで動作させる。 この2つのモードの違いを吸収する設定方法が下記のページに載っていたのでメモ。

■ taetae109's memo - CORESERVER + WordPress の管理画面がおかしくなる場合の対処法 ... http://taetae109.tumblr.com/post/480587761/coreserver-wordpress

WordPress の load-styles.php が書き出す CSS ファイルの content-type が text/html になっているのが原因なので、問題の PHP だけモジュール版として動作させます。 WordPress のルートフォルダへ次の様に書いた .htaccess を設置します。
# セーフモードを解除すべく全て CGI モードで動作させる
AddHandler application/x-httpd-phpcgi .php

# こいつだけモジュール版で動作させる
<files load-styles.php>
AddHandler application/x-httpd-php .php
</files>

WordPressのレイアウトが崩れる理由はCSSが正常に動作しないからであって、CSSに関係するload-style.phpがモジュールモードで動作していないため。 そこで、上記のようにload-style.phpだけモジュールモードで動かしてあげればよいと言うことになる。

具体的に行ったことは次の通り。 ~/public_html/.htaccess

AddHandler application/x-httpd-phpcgi .php

~/public_html/wordpress/.htaccess

<files load-styles.php>
  AddHandler application/x-httpd-php .php
</files>

これでSOY CMSもWordPressも正常に表示されてるから大丈夫じゃないかな。