CentOS7にLaravel(PHP)開発環境を作成する

# 概要
本書ではCentOS7にLAMP環境(Linux,Apache,PHP,MariaDB)を構築し、PHPの人気フレームワークであるLaravelの開発環境を作成します。

## 0.使用環境
* 使用PC：Windows 10 Pro
* 仮想環境：VirtualBox 6.0.14
* 仮想OS：CentOS Linux release 7.7.1908 (Core)<br>
※注：本書ではPHP 7.3.11、composer 1.9.0 、Laravel 5.8を使用しております。PHPやLaravelのバージョンによって`.env`などの内容が異なる場合があります。

## 1. 初期設定

1. アップデート可能な全パッケージをアップデートする。

	```
	$ yum -y update
	```

2. 永続的にSELinuxを無効化する。

	```
	$ vi /etc/selinux/config
	SELINUX=disabled
	$ reboot
	```

## 2. Apacheのインストール

1. Apacheをインストールする

	```
	$ yum -y install httpd
	```

2. Apacheを起動する

	```
	$ systemctl start httpd
	$ systemctl enable httpd
	$ systemctl status httpd
	```

3. httpが接続できるように80ポートを許可する。


	```
	$ firewall-cmd --add-service=http --zone=public
	$ firewall-cmd --reload
	$ systemctl restart firewalld
	```

3. ブラウザで`http://localhost`に接続し、Apacheの初期画面が表示されることを確認する。

## 2. PHPのインストール

1. PHP7のリポジトリを追加する。

	```
	$ sudo wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
	$ sudo rpm -ivh epel-release-latest-7.noarch.rpm
	$ sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
	$ sudo yum-config-manager --enable remi-php73
	```

2. PHPをインストールする。


	```
	$ yum install -y php73 php73-php php73-php-mysql php73-php-php-mysqlnd php73-php-bcmath php73-php-ctype php73-php-json php73-php-mbstring php73-php-openssl php73-php-PDO php73-php-tokenizer php73-php-xml gcc
	```

3. PHPのシンボリックリンクを設定する。

	```
	$ ln -s /usr/bin/php73 /usr/bin/php
	```

4. PHPがインストールされたことを確認する。

	```
	$ php -v
	```

## 3. MariaDBのインストール

1. MariaDBをインストールする。

	```
	$ yum install -y mariadb mariadb-server
	```

2. MariaDBを起動する。

	```
	$ systemctl start mariadb
	$ systemctl enable mariadb
	$ systemctl status mariadb
	```

3. MariaDBの初期設定スクリプトを実行し、rootユーザーのパスワードを設定する。

	```
	$ mysql_secure_installation
	```

4. MariaDBに接続する。

	```
	$ mysql -u root -p
	```

5. Laravelで使用するMariaDBのユーザーを作成する。

	```
	> create user 'ユーザー名'@'localhost' identified by 'パスワード';
	> grant all on *.* to 'ユーザー名'@'localhost';
	```

## 4. composerのインストール

1. composerをインストールする。

	```
	$ yum install composer
	```

2. composerがインストールされたことを確認する。

	```
	$ composer -V
	```

## 5. Laravelプロジェクトの作成

1. composerでLaravelのライブラリを読み込む。

	```
	$ composer global require laravel/installer
	```

2. Laravelのプロジェクトを作成する。

	```
	$ cd /var/www/html
	$ composer create-project --prefer-dist laravel/laravel プロジェクト名 "バージョン"
	```

3. 作成したプロジェクトのアクセス権限を変更する。

	```
	$ chmod -R 777 /var/www/html/プロジェクト名
	```

4. LaravelでMariaDBが使用できるように`.env`を編集する。

	```
	$ cd /var/www/html/プロジェクト名
	$ vi .env
	
	(省略)
	DB_CONNECTION=mysql
	DATABASE_URL=mysql://MariaDBのユーザー名:MariaDBのパスワード@127.0.0.1/MariaDBのデータベース名
	DB_HOST=127.0.0.1
	DB_PORT=3306
	DB_DATABASE=MariaDBのデータベース名
	DB_USERNAME=MariaDBのユーザー名
	DB_PASSWORD=MariaDBのパスワード
	```

5. Laravelを日本語環境に変更する。

	```
	$ cd /var/www/html/プロジェクト名
	$ vi config/app.php
	
	(省略)
	'timezone' => 'Asia/Tokyo',

	(省略)
	'locale' => 'ja',
	```

6. Apacheを再起動する。

	```
	$ systemctl restart httpd
	```

## 6. Laravelの動作確認

1. Laravelのビルドインサーバを立ち上げる。

	```
	$ php artisan serve
	```

2. ブラウザで`http://localhost:8000`に接続し、Laravelの初期画面が表示されることを確認する。

# 最後に
CentOS7上にLaravel(PHP)の開発環境を作成することで、人気のPHPフレームワークを検証することができます。<br>
※Laravelのプログラミングについては[Laravelの公式ドキュメント](https://readouble.com/laravel/)をご確認ください。