SOY CMS + WordPress on CORESERVER
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も正常に表示されてるから大丈夫じゃないかな。