CakePHPで複数のローカル開発環境を用意するには様々な方法があると思います。
Apacheで代表的なのはmod_rewriteを使って、documentrootに配置してしまう、Aliasを使う、VirtualHostを使うなどでしょうか。
CakePHPを使っていればHelperがURLを設置場所に合わせて出力してくれますが、
やはり本番に近い状態で開発やテストは行いたいものです。
そこでApacheのVirtualHostを使い設定してみます。
<VirtualHost 127.1.0.20:80> DocumentRoot "C:\eclipse\workspace\cakephp-project\app\webroot" ServerName 127.1.0.20 ServerAlias 127.1.0.20 ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </VirtualHost> |
この場合にはブラウザで127.1.0.20にアクセスするとwebrootにアクセスします。
127.x.x.xはローカル・ループバック・アドレスと呼ばれるIPアドレスです。
ローカル・ループバック・アドレス(127.0.0.1)とは?
127.0.0.1~127.255.255.254
参照記事にもある通り、この範囲であれば自由に使えます。
なのでCakePHPのプロジェクトの数だけVirtualHostを追記すれば良いだけです。
IPだけだと、何だか分かりづらい。と言う場合にはhostsファイルを利用して擬似ドメインを作ることができます。
Windows7なら C:\Windows\System32\drivers\etc\hosts
127.1.0.20 app
と記述してブラウザにappでアクセスすると指定したIPを参照します。
これはローカルDNSのような役割をしていて、プロバイダから通知されているグローバルなDNSより先に参照されます。
127.0.0.1 が localhost でアクセスできる理由でもあります。
これには実在するドメインも記述できるので、本番前にテストも可能です。
ただし、終わった後に消しておかないとローカルを参照し続けるので注意が必要です。
余談ですが、hostsファイルを書き換えて本物そっくりな偽サイトに誘導し、情報を盗むようなスパイウェアやウィルスも存在するようです。