Alias で別 DocumentRoot を作り
CGI, SSI, html を動かす

---------------------------------------------------------------------------------
httpd.confDocumentRoot は、一つしか設定できませんが、サーバシステムを構築し
ていくとどうしても別の DocumentRoot を使ってホームページを表示したいことがあると
おもいます。
そんな時には、Alias を使うと簡単に別の DocumentRoot を使用してホームページを表示
することが可能になります。専門用語では、「 仮想ディレクトリとマッピング 」とい
います。
---------------------------------------------------------------------------------
※ 注意事項 ※
    httpd.confDocumentRoot のユーザー名と別の DocumentRoot所有者名は、
   同一に 設定してください。
---------------------------------------------------------------------------------
httpd.conf では、
        デフォルトで ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
が設定されていますが、ScriptAlias は、CGI 専用のため html には対応しない為、
コメントアウトしておきます。ついでに下記もコメントアウトしておきます。

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

 ---------------------------------------------------------------------------------
              Alias の動作を私のサーバ機を例として紹介します。
---------------------------------------------------------------------------------
私のサーバ機の DocumentRoot は、/var/html/www/www.smiyasaka.com です。
別の DocumentRoot として /home/miyasaka/www も作成しています。

通常、インターネットで www.smiyasaka.com/○○○○ をアクセスすると 
DocumentRoot で設定されているディレクトリ以下にある該当ページが表示されます。

しかし AliasAlias /abcd/ "/home/miyasaka/www/" と設定したとすると
www.smiyasaka.com/abcd/test_page.html とアクセスした場合
、/home/miyasaka/www/ 以下にある test_page.html が表示されるようになります。
ただし、デフォルトでは、html だけのサポートなので、CGI, SSI を使用したい時には、
別に設定が必要になります。

@ Alias の編集箇所

      ログの設定の下の方 <IfModule alias_module></IfModule> 内にあります。

A Alias の設定方法

      Alias /(仮想ディレクトリ)/ "/(実のディレクトリパス)/" です。

   例.  Alias /betsu-dir/ "/home/miyasaka/www/"

     /betsu-dir/○○○○ ----> /home/miyasaka/www/○○○○ に URL が変換(マッピ
      ング) されます。
     (仮想ディレクトリ)は、存在しないディレクトリでも良いです。
     (実のディレクトリパス)は、変換後のディレクトリをフルパスで記述します。

B CGI, SSI を使用したい時の設定

   Alias /(仮想ディレクトリ)/ "/(実のディレクトリパス)/" の直下に下記設定を追加
   します。
   さらに CGI, SSI 使用許可と perl の拡張子 .cgi, .pl の拡張子が使用できるように
   設定します。

   <Directory "/(実のディレクトリパス)">
       AllowOverride None     <----- [.htaccess]の使用不可
       Options Includes FollowSymLinks ExecCGI  <----- SSI, CGI を使用と
                                                    シンボリックリンクを許可
       Order allow,deny  <----- アクセス許可を優先させる
       Allow from all    <----- 上との2行ですべてのアクセスを許可
       AddHandler cgi-script .cgi .pl  <----- cgi-script の拡張子 .cgi .pl を
                                              使用許可
       Require all granted  <----- すべてのアクセスを許可
   </Directory>
---------------------------------------------------------------------------------
   *******   Apache のディレクティブの解説    *******

   Includes  <----- SSI の使用を許可
   FollowSymLinks  <----- シンボリックリンク先の参照を許可
   ExecCGI  <----- CGI プログラムの使用を許可
   allow    <----- 指定したホスト(IPアドレス)からのアクセスを許可
   deny     <----- 指定したホスト(IPアドレス)からのアクセスを禁止
   Require all granted  <-----「すべてのアクセスを許可」

※※ 注意事項 ※※

   allow, deny を使わずに 2.4系 から、この様に記述するようになっています。

   つまり、全部許す( すべてのアクセスを許可 )ということなら、

        Order Allow,Deny
        Allow from all

   ではなく、

        Require all granted

   と書く必要があります。
   こう書かないと、アクセスした時に下記の様に 403 Forbidden

   You don't have permission to access ○○○○○○ on this server.
       ( ○○○○○○は、アクセスしたファイルのアクセス権が無い )

   になります。

---------------------------------------------------------------------------------
   私の場合は、下記のようになります。

    # Alias /webpath /full/filesystem/path
    Alias /home/ "/home/miyasaka/www/"
    # .cgi .pl を有効にする。ここに書込まないと無効になる。
    <Directory "/home/miyasaka/www">
        AllowOverride None
        Options Includes FollowSymLinks ExecCGI
        AddHandler cgi-script .cgi .pl
        Require all granted
    </Directory>

---------------------------------------------------------------------------------