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> |
<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ファイルを書き換えて本物そっくりな偽サイトに誘導し、情報を盗むようなスパイウェアやウィルスも存在するようです。
携帯ブラウザの検証で実機に勝るものが無いのは確かです。でも3キャリアで2年前程度の機種まで揃えると大変な費用となりますね。
そこで便利なのが携帯ブラウザエミュレーターです。
P1エミュレータ
オススメはP1エミュレーターです。
3キャリアのほぼ全ての機種をエミュレーションしてくれる上に、デバッグまでサポートしています。
私が使っていた頃はガラケーのみでしたが、最近ではスマホまで対応しているようで、死角なしという感じです。
ライセンス費はお高いですが、実機を最低3キャリア1台づつ揃えたとして、パケ放題プランと基本料金で5000円くらいは掛かると思うので、
維持費だけでも年18万円掛かる計算です。比べるまでもない差額ですね。
PC周りのブラウザ検証ですが、Chrome、Firefoxは言うまでもなく、Safariもwindwos版があります。
問題児であるIE6~9はMSがOSイメージで配布しています。
#Windows7 Pro以上のOSが必要
Internet Explorer Application Compatibility VPC Image
毎度全部入れるの面倒だよ、という方にはアドビがオンラインサービスで検証環境を提供しています。
Adobe BrowserLab
主要ブラウザ、バージョン全てに対応しています。IDを作れば今のところ無料で使えるようです。
WEBシステムからメールを送信するというのはよくある事ですが、SMTPサーバを立て、POP3サーバを立て、アカウントを作るのは面倒なものです。
Gmailなど外部のSMTPを使ってしまうのも手ですが、やはり手間ではあります。
そこで便利なのがPapercut。
とてもシンプルで、起動するとタスクバーに常駐してローカル25番ポートのSMTP経由のメールを全てキャッチしてくれます。
#PHPならデフォルトのmail設定のままでOK
画面を開くと受信メールが時系列でリスト表示されます。
日本語メールが化けてますが、BodyViewをクリックすればデコードされます。
いちいちアカウントを作らなくても良いので非常に便利です。