PHP Slim3フレームワークのサンプルアプリをApacheで動かそう（3. Alias使用）

# はじめに
PHP Slim3フレームワークのサンプルアプリを過去記事（[1](https://qiita.com/erik_t/items/23cc9df2154e80aa137e)、[2-1](https://qiita.com/erik_t/items/9e9f6c93d2403ac90242)）で作成し、
PHPのビルトインWebサーバーを使用して表示しました。
今回はAliasを使用してアプリを動かしてみましょう。

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

- 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)、[2](https://qiita.com/erik_t/items/8dc3f2a5e8e8c9376e27)、[3](https://qiita.com/erik_t/items/617503557020a4a6ba82)、[4](https://qiita.com/erik_t/items/a898d0f547bff6b3d8ff)）
- [CentOS7にComposerをインストールしよう](https://qiita.com/erik_t/items/0b3492f38f6cd8605a4c)
- PHP Slim3フレームワークのサンプルアプリを作ろう
    - [1. skeleton project](https://qiita.com/erik_t/items/23cc9df2154e80aa137e)
    - [2-1. First Application Walkthrough Getting Set Upまで](https://qiita.com/erik_t/items/9e9f6c93d2403ac90242)

　　今回も[VirtualHostを使用した時](https://qiita.com/erik_t/items/20e93326d66d943dcb36)と同様、同じサーバーに上記2つのアプリが作られているものとします。

- [【Apache】Aliasを使ってみよう](https://qiita.com/erik_t/items/8d463596f1660290e8a3)

　　作業的には必要ないですが、目を通しておくと今回の記事がわかりやすいと思います。

# 使用ツール
- Tera Term

# 手順
1. .htaccessファイルを作成
2. 設定ファイル書き換え
3. プロジェクトディレクトリ内のフォルダ、ファイルにパーミッション付与
4. 動作確認

# やってみよう
## 1. .htaccessファイルを作成
[1. VirtualHost使用](https://qiita.com/erik_t/items/20e93326d66d943dcb36)の[1. .htaccessファイルを作成](https://qiita.com/erik_t/items/20e93326d66d943dcb36#1-htaccess%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90)参照。

urlからindex.phpを省略するため、下記を追加してください。

[1. skeleton project](https://qiita.com/erik_t/items/23cc9df2154e80aa137e)は以下。

```:.htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /skeleton/
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php [L]
</IfModule>
```
[2-1. First Application Walkthrough Getting Set Upまで](https://qiita.com/erik_t/items/9e9f6c93d2403ac90242)は以下。

```:.htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /first/
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php [L]
</IfModule>
```
## 2. 設定ファイル書き換え
以下のように`httpd.conf`を編集します。

```: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 /first "/home/slimuser/projects/slim/FirstApplication/src/public"
    <Directory "/home/slimuser/projects/slim/FirstApplication/src/public">
        Require all granted
        AllowOverride All
    </Directory>
    Alias /skeleton "/home/slimuser/projects/slim/Slim-Skeleton/public"
    <Directory "/home/slimuser/projects/slim/Slim-Skeleton/public">
        Require all granted
        AllowOverride All
    </Directory>
```

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

```
systemctl restart httpd
```

## 3. プロジェクトディレクトリ内のフォルダ、ファイルにパーミッション付与
[1. VirtualHost使用](https://qiita.com/erik_t/items/20e93326d66d943dcb36)の[4. プロジェクトディレクトリ内のフォルダ、ファイルにパーミッション付与](https://qiita.com/erik_t/items/20e93326d66d943dcb36#4-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%86%85%E3%81%AE%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%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)参照。
## 4. 動作確認
ブラウザを起動して、以下のURLにアクセスしてみましょう。
PHPのビルトインWebサーバーを使用していた時と同じように表示されたらOKです。

```
http://192.168.33.60/skeleton/world
http://192.168.33.60/first/hello/world
```
# 参考サイト
[apache + laravel でURLのindex.phpの省略](https://qiita.com/morohoshi/items/d2c71396f968e30c6e4c)

# 関連ページ
## 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)
[2. MySQLをインストール](https://qiita.com/erik_t/items/8dc3f2a5e8e8c9376e27)
[3. PHPをインストール](https://qiita.com/erik_t/items/617503557020a4a6ba82)
[4. ファイアウォールとか停止する](https://qiita.com/erik_t/items/a898d0f547bff6b3d8ff)

## Composerをインストール
[CentOS7にComposerをインストールしよう](https://qiita.com/erik_t/items/0b3492f38f6cd8605a4c)

## PHP Slim3フレームワークのサンプルアプリを作ろう
[1. skeleton project](https://qiita.com/erik_t/items/23cc9df2154e80aa137e)
[2-1. First Application Walkthrough Getting Set Upまで](https://qiita.com/erik_t/items/9e9f6c93d2403ac90242)

## Apache
 [Aliasを使ってみよう](https://qiita.com/erik_t/items/8d463596f1660290e8a3)

## PHP Slim3フレームワークのサンプルアプリをApacheで動かそう
[1. VirtualHost使用](https://qiita.com/erik_t/items/20e93326d66d943dcb36)
[2. DocumentRoot使用](https://qiita.com/erik_t/items/91addfbd9cb44676d281)
3. Alias使用