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を作成しておけばそのファイルが自動的に開かれる。