すたらブログ

文系Webプログラマの備忘録

XAMPP: ネットワークドライブをドキュメントルートに指定する方法

NASとネットワークドライブを混同していたので、該当箇所を修正しました。
なお、題名はそのままにしています。

XAMPP導入前の状況

  • ひとつのLAN内で開発している。
  • 全てのファイルはNASに保管している。
  • ブラウザでHTMLの表示確認をする場合は、Webサーバを通さずにファイルとしてアクセスしている。
  • PHPPerlの動作確認は、リモートのテスト用領域にアップロードして行っている。

XAMPP導入の目的

  • ローカルでPHPPerlの動作確認をしたい。
  • ChromeでもIEでも同一の、httpスキームのURIでアクセスしたい。
    http://local.project1/index.html

注意点

NASであるかどうかに関わらず、そもそも日本語文字を含むパスはドキュメントルートに指定できません。
英数字だけのパスとなる場所に移すのがよいと思います。
または、下記を参考にしてください。

指定の方法

NASの場合は、スキームなしのURIで指定します。
(2連続のスラッシュから始まる形式)
例: //network-drive/project1

ドキュメントルートの指定方法は以下の3種類の方法があります。 複数のサイトを管理するにはエイリアスかバーチャルホストを使います。
本番のURLと同じ階層構造になるように設定します。

通常のドキュメントルート

URL例: http://localhost/index.html

# C:\xampp\apache\conf\httpd.conf の243行目付近

DocumentRoot "//network-drive/project1"
<Directory "//network-drive/project1">
    # 以下略

エイリアス

URL例: http://localhost/project1/index.html

# C:\xampp\apache\conf\httpd.conf の335行目付近

<IfModule alias_module>
    Alias /project1/ "//network-drive/project1"
    <Directory "//network-drive/project1">
        # htaccessの動作のために必要
        AllowOverride All

        # SSI、CGIそれぞれの動作のために必要
        Options +Includes +ExecCGI

        Require all granted
    </Directory>
    # 以下略

バーチャルホスト

URL例: http://local.project1/index.html

# C:\xampp\apache\conf\extra\httpd-vhosts.conf
# 以下を追記する

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "//network-drive/project1"
    ServerName local.project1
</VirtualHost>
<Directory "//network-drive/project1">
    # htaccessの動作のために必要
    AllowOverride All

    # SSI、CGIそれぞれの動作のために必要
    Options +Includes +ExecCGI

    Require all granted
</Directory>
# C:\Windows\System32\drivers\etc\hosts (管理者権限で開く)
# 以下を追記する

127.0.0.1 localhost
127.0.0.1 local.project1