ubuntuではlocalhostが/var/www/html/に割り当てられているが、もう一つlocalhost2とかを作って別のフォルダーを割り当てたい。

結論としては、hostsファイルにlocalhost2のエイリアスを登録し、000-default.confにそのドメインでアクセスされたときのフォルダを設定することで実現できた。

環境

  • Ubuntu 20.04.1 LTS
  • Apache/2.4.41 (Ubuntu)

hostsファイルを編集

/etc/hostsをsu権限で開く

変更前↓

127.0.0.1	localhost
127.0.1.1	aaa

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.0.1は自分自身のコンピュータを表すIPアドレス。つまりlocalhostにアクセスするということは、127.0.0.1にアクセスしているということだったのだ。

では適当なlocalhost2という名前を追加した。変更後↓

127.0.0.1	localhost
127.0.0.1	localhost2
127.0.1.1	aaa

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

000-default.confを編集する

ServerNameとServerAliasにhostsファイルに設定したホスト名、DocumentRootとDirectoryにアクセス先のディレクトリを指定する。

適宜変更するとして、以下を/etc/apache2/sites-available/000-default.confの適当なところに追記する。

<VirtualHost *:80>
    ServerName localhost2
    ServerAlias localhost2
    DocumentRoot "/home/aaa/localhost2"
<Directory "/home/aaa/localhost2">
        Options Indexes FollowSymLinks
        AllowOverride All
        <IfVersion < 2.3>
                Order allow,deny
                Allow from all
        </Ifversion>
        <IfVersion >= 2.3>
                Require all granted
        </IfVersion>
</Directory>
</VirtualHost>

apache2の再始動

sudo service apache2 restart

この後、http://localhost2/にアクセスすれば、apache2の画面が表示されるはず。

index.htmlを作成しておけばそのファイルが自動的に開かれる。