アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

CodeIgniter入門 #3:複数サイトの設置に対応してみる

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109

入門どころかいろいろすっ飛ばして応用してる感がありますが

なんかうまいこと複数サイトを運用する方法あるかな、と思って考えてみました。
レンタルサーバーなどドキュメントルートが一つなので共有するしかない、みたいな前提)

といってもかなり直球な方法なので大仰に書くほどでもないのですが…

今回やること

  • 複数サイトを想定してディレクトリ構造を変更し、動かしてみる

ファイル設置してみる

こんな感じで。

  • codeigniter
    • application
    • application_a
    • system
  • www(←ドキュメントルート)

前回の構造は基本的にそのままで、「applicationディレクトリを複製」「index.php.htaccessのセットを複製したやつを別ディレクトリ切って設置」しています。
systemは共有して良さそうに見えるのでそのままにしていますが、問題があればapplicationと同じ対応でよいはずです。
逆にapplicationも共有する場合はそもそも複製しなくてOK…なのでしょうけど、そんな運用あるかな…

ドキュメントルート下にcssやjsなどのディレクトリを切る場合もまあ好きなところでよいでしょう。

っていうかcodeigniterディレクトリっていうのがだいぶダサくなってきたな…。

アクセスできるようにしてみる

複製しただけなので、まずwww直下のindex.phpは何も変わりません。「/」でアクセスできます。
で、複製したところは「/a/」でアクセスできるようにしたいと思います。

といっても、www/a/index.php を実際のパスに合わせて以下のように調整するだけです。

$system_path = '../../codeigniter/system';
$application_folder = '../../codeigniter/application_a';

/a/ に無事アクセスできればOK。あとはそれぞれのapplicationディレクトリ以下で開発するだけ。

URLがかっこ悪いっていうのは…独自ドメインとかあればサブドメインに置き換えるとか上手いことできるもんなのかな?(よく知らない)

想定する用途

単に丸々別物のサイトの運用もできるでしょうけども、例えば
「/」は一般公開用ページとして、
「/user/」はログイン中専用ページ、「/admin/」は管理ページ、「/api/」はwebAPI用…みたいな感じでもよさそう。
adminとかapiとかってコントローラ作るのも何だし、だからって.htaccessなどでいじり回すのもアレだし。
そういう分け方しておくと、いざ複数サーバーに分散設置したいってときもちょっと楽そうだし。