-   topic   - トピックス

複数のbaserCMSをサブディレクトリで分けて運用する

2016年03月13日 技術関係

いつも株式会社ヒニアラタのホームページをご覧いただき、誠にありがとうございます。 今回はさくらインターネットのレンタルサーバーにおいて、 サブドメインを使って複数のbaserCMSを設置する方法をご紹介しています。

もともと持っている独自ドメインにサブドメインを割り当てることで、複数のbaserCMSを設置でき、テストサーバー的な利用も可能になるのではないかと思います。

動作環境

さくらインターネット(スタンダードプラン)、baserCMS 3.0.9

設置場所について

さて、まずbaserCMSを設置する場所ですが、今回は以下の様な状態で行いました。 ここでは仮にbaserCMSの入ったフォルダを「baser01」としています。

  /home/(さくら会員ドメイン)/www/baser01/

「www」直下にサブディレクトリを作る形です。サブディレクトリの中には「app」フォルダや「lib」フォルダなど、baserCMSの中身が入っています。

サブディレクトリを用意してやることで、後々複数のbaserCMSを設置できるようと考えています。例えば・・・

/home/(さくら会員ドメイン)/www/baser02/
/home/(さくら会員ドメイン)/www/baser03/

という具合に必要な数だけ増やしていく感じです。とりあえず、これでbaserCMSの設置を終えましたので、次にサーバーコントロールパネルからサブドメインの設定を行います。

サブドメインについて

先ほど設置したbaserCMSのフォルダ「baser01」にサブドメインを設定していきます。 サブドメインの作り方自体は、サーバーコントロールパネルのヘルプをご覧ください(サブドメインを作るには、そもそも独自ドメインを1つ持っている必要があります)。

下の図のように、先ほど作ったディレクトリ「baser01」を、サブドメインのルートフォルダとして設定してください。

20160313_blog.png

なお上図の通り、ディレクトリ名の先頭に「/(スラッシュ)」が必要です(ちなみに後ろにはいらないのでご注意ください)。

これでサブディレクトリの設定ができたと思いますが、DNSに反映されるまで(1〜2時間程度かかることも)しばらくは使えません。 そこで、この間に「.htaccess」を編集しておきましょう。

(ちなみにMySQLでbaserCMSを運用する方は、サーバーコントロールパネルに入ったついでにDBの設定も行うと良さそうです。)

.htaccessの編集

今回編集が必要な.htaccessは3つです。以下の場所にあります。

/home/(さくら会員ドメイン)/www/baser01/.htaccess
/home/(さくら会員ドメイン)/www/baser01/app/.htaccess
/home/(さくら会員ドメイン)/www/baser01/app/webroot/.htaccess

.htaccessファイルは、ローカルPCでは表示されない場合が多いので(不可視ファイル)、 ダウンロードして編集する際は、ファイル名を「htaccess.txt」などに変更してください(編集後にアップロードして、名前を元に戻せばOKです)。

まず1つめの「baser01」直下の.htaccessを編集してください。なお、このファイルは下位バージョンからアップデートしたものを設置するような場合を除いて、最初は存在しないと思います。作ってください。

  RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]

次に2つめのファイル「app」フォルダ直下にあるものを、以下のように編集してください。「baser01」とあるところは、皆さんの環境によって書き換えて下さい。

  Order allow,deny
Deny from all

RewriteEngine on
RewriteBase /baser01/app
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
  

最後に3つめのファイル「app/webroot」フォルダ直下にあるものを、以下のように編集してください。

  Allow from all
RewriteEngine on
RewriteBase /app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
  

これで準備完了です。サブドメインの設定がDNSに反映されるのを待ち、「http://baser01.exsample.com/」にアクセスしてください。 インストール画面が開くと思います。

いかがだったでしょうか。サブディレクトリにインストールすると、baserCMSのルーティングの関係から、CSSが外れてしまったり上手くアクセスできない場合があると思います。 しかし、上のように少し調整してあげれば正常に動かすことが可能です。今回はさくらインターネットでしたが、他のレンタルサーバーでも応用できる部分があるのではないかと思います。