CentOS7でLaravel5.4の環境構築

#CentOS7にLaravel5.4を入れるまで
readoubleでドキュメントの日本語訳がされていますので、以下もご覧ください。
[https://readouble.com/laravel/5.4/ja/installation.html](https://readouble.com/laravel/5.4/ja/installation.html)

##PHPを入れる
別記事で投稿していますが、PHP7を入れます。
[http://qiita.com/minechan1234/items/07f8055155c58b77220d]
(http://qiita.com/minechan1234/items/07f8055155c58b77220d)
PHP5.6.4以上が必須なので、それ以上のバージョンを入れてください。

※以下が入っていなくてもcompoesr等でコケます。
php-devel php-mbstring php-pdo php-gd php-mysqlnd php-intl phpunit

##Composerを入れる
Composerの詳細説明は割愛しますが、PHPのパッケージ管理システムです。
これを利用することで、Laravelやその他対応しているフレームワークを簡単にインストール出来ます。

curlでcomposer.pharを持ってきます。
```# curl -sS https://getcomposer.org/installer | php```

続いて、パスの通っているディレクトリに移動します。
```# mv composer.phar /usr/local/bin/composer```

正しく入ったかを確認します。
```# composer```

![1.png](https://qiita-image-store.s3.amazonaws.com/0/183427/0a974f89-e94a-e0cc-8012-a1ba406f0c27.png)

パスを通さない場合は、curlで持ってきたcomposer.pharを指定しても同様に動きます。
```# /home/composer.phar```
※ディレクトリパスは実際に置いてあるパスに変えてください。

##Laravelを動かす
###インストール
まずはカレントディレクトリを移動します。
インストールする場所はどこでもいいですが、今回は分かりやすくhtml配下に入れます。
```# /var/www/html```

続いて、Laravelを入れます。
以下の場合は最新のLaravelバージョンがblogというフォルダ名でインストールされます。
```# composer create-project --prefer-dist laravel/laravel blog```

今回はバージョンを指定して入れます。
```# composer create-project --prefer-dist laravel/laravel laravel 5.4.*```

php artisan key:generateまで走れば成功です！
![2.png](https://qiita-image-store.s3.amazonaws.com/0/183427/d0486a34-7854-fb97-8f06-e0befe074159.png)


###ブラウザからアクセス
このままでは動かないので、パーミッションやhttpd.confの設定を変えます。

####パーミッションの変更
インストールしたディレクトリに移動します。
```# cd laravel```

パーミッションを変更します。
本来は所有者をapacheに変えて、正しくパーミッションを設定するべきですが、今回は777に変えます。
```# chmod -R 777 storage```
```# chmod -R 777 bootstrap/cache```

####DocumentRootの変更
「DocumentRoot "/var/www/html"」を
「DocumentRoot "/var/www/html/laravel/public"」に変えます。
```# vi /etc/httpd/conf/httpd.conf```

![3.png](https://qiita-image-store.s3.amazonaws.com/0/183427/71ca52b5-2b78-10b2-69fa-4c6d5bd6cf8a.png)

※viでファイルの中身が出てきたら、「/DocumentRoot」を入力すれば素早く見つけられます。

####AllowOverrideの書き換え
「AllowOverride None」を
「AllowOverride All」に変えます。
```# vi /etc/httpd/conf/httpd.conf```

場所が分かりづらいですが、DocumentRootの下にあります。
今回はhtmlディレクトリ配下にインストールしたので、<Directory "/var/www/html">の中のAllowOverrideを書き換えます。
![4.png](https://qiita-image-store.s3.amazonaws.com/0/183427/447c8abc-7e2c-f36b-e991-d8af5ab627f7.png)

最後に、Apacheを再起動してブラウザからアクセスします。
```# systemctl restart httpd```

![5.png](https://qiita-image-store.s3.amazonaws.com/0/183427/52548ca4-ad07-7275-1876-f4bc8b74db94.png)

##DB接続設定
今回はMySQL5.7に接続します。
MySQL5.7の導入は以下を参照ください。
[http://qiita.com/minechan1234/items/eb3d96423358905a6da8]
(http://qiita.com/minechan1234/items/eb3d96423358905a6da8)

###データベース作成
まずはMySQLにログインしてデータベースを作成します。
```mysql> CREATE DATABASE laravel CHARACTER SET utf8;```

###envのDB設定
laravelの.envを編集します。
環境によって変わる情報をlaravelはenvファイルで管理しています。
```# vi /var/www/html/laravel/.env```

各自で用意したデータベースの値を入れてください。
![6.png](https://qiita-image-store.s3.amazonaws.com/0/183427/c36ba712-d88a-4701-65ca-c10587d43c81.png)

マイグレートしてテーブルが作成されれば成功です！
※Laravel5.4からはMySQL5.6だとエラーが発生するので別途設定が必要になります。
```# php artisan migrate```

#おまけでログイン機能を実装
コマンド１つでデフォルトのログイン機能が実装出来ます。
```# php artisan make:auth```

![7.png](https://qiita-image-store.s3.amazonaws.com/0/183427/141b835b-f593-6348-e50b-3fcd409205af.png)

以上です。
長くなったの一旦切ります。