14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

どうでもいいローカルでの環境構築作業を省略する

Last updated at Posted at 2014-10-09

テンプレプロジェクトで以下の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の設定も不要になった。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?