テンプレプロジェクトで以下の2つがどうしてもめんどくさかった。
- hostsの設定
- バーチャルホストの設定
Gitからcloneしてそのまま開発にとりかかれるようにする。
ローカルだし細かい部分は気にしない。
###プロキシファイルの作成
スクリプトを書く
proxy.pac
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.example.com.local")) {
return "PROXY 10.211.55.31"; //サーバのアドレス
} else if(shExpMatch(host, "*.local")) {
return "PROXY 10.211.55.31";
}
return "DIRECT";
}
Macだとこれをホームディレクトリ等に置いて
システム環境設定 -> ネットワーク -> 詳細 -> プロキシ から自動プロキシ構成にチェックを入れてfile:///Users/user_name/proxy.pac
のように指定する。
これで*.example.com.localを設定する場合はhostsの編集は不要に。
特定の場合を条件に入れたくなければifの前に指定してあげればいい。
サーバ変数の修正
プロキシを通すと一部おかしくなるので修正する必要がある。
このままだとWordPressとか動かない。
適当な場所にPHPファイルを作る(ここでは/media/psf/Home/webroot/document_root.php)
document_root.php
<?php
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['SCRIPT_F
ILENAME']);
if(isset($_SERVER['HTTP_PROXY_CONNECTION'])) {
unset($_SERVER['HTTP_PROXY_CONNECTION']);
}
if(isset($_SERVER['HTTP_CACHE_CONTROL'])) {
unset($_SERVER['HTTP_CACHE_CONTROL']);
}
$_SERVER['REQUEST_URI'] = str_replace(array(
'http://' . $_SERVER['HTTP_HOST'],
'https://' . $_SERVER['HTTP_HOST']
), '', $_SERVER['REQUEST_URI']);
バーチャルホストの設定
httpd.confなどに以下の内容を書く
httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com.local
ServerAlias *.example.com.local
VirtualDocumentRoot /media/psf/Home/webroot/%0
php_admin_value auto_prepend_file /media/psf/Home/webroot/document_root.php
<Directory /media/psf/Home/webroot/>
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName *.local
ServerAlias *.local
VirtualDocumentRoot /media/psf/Home/webroot/%1
php_admin_value auto_prepend_file /media/psf/Home/webroot/document_root.php
<Directory /media/psf/Home/webroot/>
AllowOverride All
</Directory>
</VirtualHost>
ディレクトリ名をドメイン名と同じにするか[ディレクトリ名].localで接続できるようになる。
これでhttpd.confの設定も不要になった。