CentOS7環境でLaravelを構築する

#はじめに
春に向けて、CentOSの環境を着々と構築していっています。
とりあえずCentOSをWebサーバー、SQLサーバーとして仮に運用してみようと思っているところです。
今回はかの有名な[Laravel](http://laravel.jp/)さんをインストールしてみました。そろそろMVC始めていきたい。

**2018-03-13追記：**
後で書いた[**こっちの記事**](https://qiita.com/tosite0345/items/b9ec1594f359f03b0403)のほうがガチ目な設定やってます。

#環境
CentOS Linux release 7.3.1611(Core) x86_64
PHP 5.6.30
Composer 1.3.2
Laravel 5
#必須環境
PHP : 5.4以上
PHP Module : php-mcrypt, php-mbstring, php-pdo, php-mysqlnd

```bash:console
#CentOS バージョン確認
$ cat /etc/redhat-release
```
#Laravelサービス起動までの手順
+ PHPインストール
+ Composerインストール
+ Laravelインストーラー　ダウンロード
+ Laravel Project生成
+ テストサーバー起動

#PHPインストール
当初PHP5.4で実行しようとしたところ、正常に動作しなかった。
そのため、今回はPHP5.6をインストールしている。恐らく5.4でも正常動作はすると思われる。
###リポジトリ登録
まずはリポジトリを登録する。なお、下記リポジトリは執筆時点でのものであることを付け加えておく。

```bash:console
$ rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/epel-release-7-8.noarch.rpm
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
```
###PHP5.6インストール
PHP5.6本体を単体インストールする。

```bash:console
# まずは先にphp単体でインストールを実行する
$ yum install --enablerepo=remi --enablerepo=remi-php56 php
# バージョンを確認する
$ php -v

# 出力結果
PHP 5.6.30 (cli) (built: Jan 19 2017 07:57:06) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
```
PHPインストールの確認が取れたら、続いてパッケージのインストールを行う。

```bash:console
# その他パッケージのインストール
$ yum install --enablerepo=remi --enablerepo=remi-php56 php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd
```
###一度PHPをアンインストールする場合

```bash:console
# PHPアインストール
$ yum remove php*
```
#Composerインストール

```bash:console
$ yum install composer 
```
でインストールできるとのことだが、私は次の方法でインストールを行った。

```bash:console
# Composerコマンドツールダウンロード
$ curl -sS https://getcomposer.org/installer | php
# どこからでも起動できるようパスの通っているディレクトリに移動させる
$ sudo mv composer.phar /usr/local/bin/composer

# Composerのバージョン確認
$ composer --version

# 出力結果
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                /_/
Composer version 1.3.2 2017-01-27 18:23:41
```
###Do not run Composeras root/sper user!...と表示される場合
Rootユーザーで実行するな！と怒られます。ローカルユーザーに切り替えて実行してください。

```bash:console
$ su - <username>
$ composer -version
```

#Laravelインストーラー　ダウンロード

```bash:console
# Laravel Installerのダウンロード
$  composer global require "laravel/installer=~1.1"
```

#Laravel Project生成
```bash:console
# /var/www/html配下にsampleプロジェクトを生成
$ composer create-project laravel/laravel /var/www/html/sample --prefer-dist

# アクセス権を変更
$ chmod 777 /var/www/html/sample

# 念のためApatchを再起動
$ systemctl restart httpd
```
#テストサーバー起動

```bash:console
$ cd /var/www/html/sample/
$ ls
# ファイル一覧
app
artisan  # ビルトインサーバー起動ファイル
bootstrap
composer.json
composer.lock
config
database
gulpfile.js
package.json
phpspec.yml
phpunit.xml
public
readome.md
resources
server.php
storage
tests
vendor

# ビルトインサーバーを起動する
php artisan serve --host 0.0.0.0
```
ここで`--host 0.0.0.0`の記述を追加することで、社内LAN上のクライアントからIPアドレスでアクセスすることができるようになる。
`php artisan serve`のみでも起動は可能。
#クライアントからアクセスしてみる
アクセス先URLはデフォルトで localhost:8000 となっている。
クライアントからアクセスする場合、localhostの部分をサーバーIPアドレスに書き換えればOK。
なお、ここでアクセス出来ない場合、Firewallの部分で引っかかっている可能性が考えられる。
###ファイアーウォールを一時的に止める

```bash:console
$ systemctl stop firewalld
```
![182.png](https://qiita-image-store.s3.amazonaws.com/0/165355/57d89b84-bc12-17dd-10de-53d40944050b.png)
待ちに待ったトップ画面。

#参考文献
+ [Laravelのartisanでサーバを立ち上げた時にプライベートIPでアクセスできない問題と、その対処法](http://imamotty.hatenablog.jp/entry/2015/03/01/145221)
+ [そろそろ暖かくなってきたし CentOS6 に Laravel5 をインストールしてみた](http://qiita.com/IKEA_dless/items/8f02b3ea35c83c265307)
+ [CentOS7にPhPフレームワークLaravelをインストール](http://qiita.com/rp_pen/items/8583d48ef01624cf3a78)
+ [Laravel5をComposerでCentOS6.6にセットアップする](http://tasukent.hatenablog.com/entry/2015/02/15/185535)
+ [CentOS6.4(6.5)のPHPを5.6にアップデートする方法](http://qiita.com/zaburo/items/fd67b294c610d54c3aee)