【Apache】Aliasを使ってみよう

# はじめに
過去記事[【Apache】DocumentRootを変更しよう](https://qiita.com/erik_t/items/d8f4746d2dc2992f329e)ではDocumentRootを変更してみましたが、
Alias（エイリアス）を使用することで、
DocumentRootを変更することなく、まったく別のディレクトリにあるファイルを
DocumentRootの配下に配置されているように見せかけることができるようです。


# 前提
下記記事で構築した環境を前提とします。

- Windows10にVagrantをを入れてCentOS7をインストールしよう([1](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)、[2](https://qiita.com/erik_t/items/909efb63fd389f486ec3)、[3](https://qiita.com/erik_t/items/2e3c43cfe8731621b82d)、[4](https://qiita.com/erik_t/items/8d006b599815c8fbf38b)、[5](https://qiita.com/erik_t/items/9fbe7b5630b1f62893a1)、[6](https://qiita.com/erik_t/items/11f24633f4248e4f33f0)) 
- ローカルでLAMP環境を構築しよう（[0](https://qiita.com/erik_t/items/9c7c49db061a250cbc32)、[1](https://qiita.com/erik_t/items/e36235896b327f5cb461)、[4](https://qiita.com/erik_t/items/a898d0f547bff6b3d8ff)）

# 使用ツール
- Tera Term

# 手順
[1. 設定ファイル書き換え](https://qiita.com/erik_t/items/8d463596f1660290e8a3#1-%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88)
[2. 動作確認用のファイルを作成](https://qiita.com/erik_t/items/8d463596f1660290e8a3#2-%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E7%94%A8%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90)
[3. DocumentRootに指定したフォルダにパーミッション付与](https://qiita.com/erik_t/items/8d463596f1660290e8a3#3-documentroot%E3%81%AB%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AB%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E4%BB%98%E4%B8%8E)

# やってみよう
## 1. 設定ファイル書き換え
設定ファイル`/etc/httpd/conf/httpd.conf`内を"Alias"で検索すると次のようなコメントが見つかります。

```:httpd.conf(変更前)
    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.
```
そのコメントの下に、下記を追記します。

```:httpd.conf(変更後)
    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.
    Alias /hoge "/hoge/hoge"
    <Directory "/hoge/hoge">
        Require all granted
    </Directory>
```

追記をしたらApacheを再起動します。

```
systemctl restart httpd
```

## 2. 動作確認用のファイルを作成
ルートに下記のような要領で、ファイルを作成してください。

```:/hoge/hoge/index.html
.
├── hoge
│   └── hoge
│       └── index.html
```
index.htmlに適当な文字列を入力して保存してください。

```
vi /hoge/hoge/index.html
```
##3. DocumentRootに指定したフォルダにパーミッション付与
下記のコマンドで、作成したフォルダ・ファイルの所有者をapacheにします。

```
chown apache:apache /hoge/hoge/index.html
```
下記のコマンドで権限を付与します。

```
chmod 755 /hoge/hoge/index.html
```

Vagrantfileのconfig.vm.network “private_networkに設定したIPアドレスを確認します。
（ここでは"192.168.33.10"としましょう）
ブラウザに以下のアドレスを入力します。

```
http://192.168.33.10/hoge/index.html
('index.html'は省略可)
```
index.htmlに保存した文字列がブラウザで確認できたら完了です。

# ちなみに
Aliasは複数設定可能です。

```:httpd.conf
    #
    # Alias: Maps web paths into filesystem paths and is used to
    # access content that does not live under the DocumentRoot.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.
    Alias /hoge "/hoge/hoge"
    <Directory "/hoge/hoge">
        Require all granted
    </Directory>
    Alias /foo "/foo/foo"
    <Directory "/foo/foo">
        Require all granted
    </Directory>
```
下記のように、フォルダ・ファイルを作成して、

```
/foo/foo/index.html
```
以下のURLにアクセスしてみてください。

```
http://192.168.33.10/hoge/index.html
http://192.168.33.10/foo/index.html
```
# 参考サイト
[エイリアス(Alias)](https://www.adminweb.jp/apache/docroot/index3.html)
[Apacheでドキュメントルート以外のディレクトリを公開する方法](https://i-think-it.net/apache-documentroot-other-publishing/)
[Apacheで403 Forbiddenが表示された時のチェックポイント5選](https://engineers.weddingpark.co.jp/?p=1031)
# 関連ページ
## Windows10にVagrantをを入れてCentOS7をインストールしよう
[1. VagrantインストールからVagrantfileを設置まで](https://qiita.com/erik_t/items/d7f7abbf7deafa4c6fe4)
[2. 仮想マシンの操作](https://qiita.com/erik_t/items/909efb63fd389f486ec3)
[3. WinSCP、Tera Termに秘密鍵でログイン ](https://qiita.com/erik_t/items/2e3c43cfe8731621b82d)
[4. WinSCP、Tera Termにrootユーザーでパスワードログイン](https://qiita.com/erik_t/items/8d006b599815c8fbf38b)
[5. zip/unzipをインストール](https://qiita.com/erik_t/items/9fbe7b5630b1f62893a1)
[6. Vagrantにて仮想環境を配布](https://qiita.com/erik_t/items/11f24633f4248e4f33f0)

## ローカルでLAMP環境を構築しよう
[0. 事前準備](https://qiita.com/erik_t/items/9c7c49db061a250cbc32)
[1. Apacheをインストール](https://qiita.com/erik_t/items/e36235896b327f5cb461)
[4. ファイアウォールとか停止する](https://qiita.com/erik_t/items/a898d0f547bff6b3d8ff)

## Apache
[DocumentRootを変更しよう](https://qiita.com/erik_t/items/d8f4746d2dc2992f329e)
Aliasを使ってみよう
[VirtualHostを使ってみよう](https://qiita.com/erik_t/items/63f079826a60aaa642d3)

## おすすめ参考書
[サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)](https://amzn.to/3ITR7nZ)

## 閑話休題
最近のマイブームはスプラトゥーンです。
ハマりすぎて[専用のSwitch](https://amzn.to/3oDUVD5)まで購入してしました。。。
みなさんでもぜひ！