VirtualBox＋VagrantでLaravel開発環境を構築その弐

環境を作る度に色んなサイト見て調べてって・・・大変なので、コピペできるように纏めました。
ですが、別のミドルウェアなどに入れ替えたくなりました。

# マシンスペック
* Mac mini 2018
* macOS Catalina（10.15.x）
* Intel Core-i7 3.2GHz 6コア
* メモリ 32GB
* SSD 512GB

# VM環境
* CentOS 7.x
* Nginx 1.x
* ~~PHP（PHP-FPM）7.3.x~~ → <font color="blue">PHP（PHP-FPM）7.1.x</font>
* ~~MariaDB 10.3.x~~ → <font color="blue">MySQL5.7.x</font>
* ~~Laravel 6.x~~ → <font color="blue">Laravel5.x</font>
* IPアドレス
 * 192.168.56.104
* ユーザー/パスワード
 * root/vagrant
 * vagrant/vagrant
* VM名
 * CentOS7

# やること
* 既存環境のミドルウェア入れ替え
* 既存環境のLaravel入れ替え

# 前提
まずは下記従って環境構築する
[VirtualBox＋VagrantでLaravel開発環境を構築その壱](https://qiita.com/_bobtabo_/items/121496a1317aeb96f0c5)

# PHP（PHP-FPM）7.3.x を PHP（PHP-FPM）7.1.x に入れ替える
### PHP（PHP-FPM）7.3.x のアンインストール
```terminal
$ yum list installed | grep php
oniguruma5php.x86_64               6.9.5+rev1-2.el7.remi           @remi
php.x86_64                         7.3.19-1.el7.remi               @remi-php73
php-bcmath.x86_64                  7.3.19-1.el7.remi               @remi-php73
php-cli.x86_64                     7.3.19-1.el7.remi               @remi-php73
php-common.x86_64                  7.3.19-1.el7.remi               @remi-php73
php-devel.x86_64                   7.3.19-1.el7.remi               @remi-php73
php-fpm.x86_64                     7.3.19-1.el7.remi               @remi-php73
php-gd.x86_64                      7.3.19-1.el7.remi               @remi-php73
php-json.x86_64                    7.3.19-1.el7.remi               @remi-php73
php-mbstring.x86_64                7.3.19-1.el7.remi               @remi-php73
php-mysqlnd.x86_64                 7.3.19-1.el7.remi               @remi-php73
php-pdo.x86_64                     7.3.19-1.el7.remi               @remi-php73
php-pecl-mcrypt.x86_64             1.0.3-1.el7.remi.7.3            @remi-php73
php-pecl-xdebug.x86_64             2.9.6-1.el7.remi.7.3            @remi-php73
php-pecl-zip.x86_64                1.19.0-1.el7.remi.7.3           @remi-php73
php-xml.x86_64                     7.3.19-1.el7.remi               @remi-php73

★すべて削除
$ sudo yum -y remove php-*
$ sudo yum -y remove php*

$ php -v
-bash: /usr/bin/php: そのようなファイルやディレクトリはありません
```

### PHP（PHP-FPM）7.1.x のインストール
```terminal
sudo yum -y install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysqlnd php-fpm php-pecl-xdebug php-pecl-zip php-bcmath
```

### 設定ファイルを編集
```terminal:/etc/php.ini
$ sudo vi /etc/php.ini
★点線内を末尾（Gで移動）にコピペ
---
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream = 0
xdebug.show_local_vars = 1
xdebug.idekey=PHPSTORM
---
:wq
```

```terminal:/etc/php-fpm.d/www.conf
$ sudo vi /etc/php-fpm.d/www.conf
★下記を点線内に編集
user = apache
group = apache
listen = 127.0.0.1:9000
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
---
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
---
:wq
```

```terminal
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
$ sudo systemctl restart nginx
```

# MariaDB 10.3.x を MySQL5.7.x に入れ替える
### MariaDB 10.3.x のアンインストール
```terminal
★MariaDBのパッケージを確認
$ rpm -qa | grep aria
MariaDB-compat-10.3.23-1.el7.centos.x86_64
MariaDB-common-10.3.23-1.el7.centos.x86_64
MariaDB-server-10.3.23-1.el7.centos.x86_64
MariaDB-client-10.3.23-1.el7.centos.x86_64

★すべて削除
$ sudo yum -y remove MariaDB*

★関連ライブラリも削除
$ sudo rm -rf /var/lib/mysql
```
※参考
https://glodia.jp/cent_mariadb_to_mysql

### MySQL5.7 のインストール
#####最新のリポジトリを追加
※参考[Index of /232905/yum/mysql-5.7-community/el](https://repo.mysql.com/yum/mysql-5.7-community/el/)
2020/06/15現在の最新は「[7/x86_64/mysql57-community-release-el7-10.noarch.rpm](https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm)」

```terminal
$ sudo rpm -Uvh https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
$ sudo yum -y install --enablerepo=mysql57-community mysql-community-server
$ mysqld --version
mysqld  Ver 5.7.30 for Linux on x86_64 (MySQL Community Server (GPL))
$ sudo systemctl enable mysqld.service
$ sudo systemctl start mysqld.service
$ sudo grep 'temporary password' /var/log/mysqld.log
2020-06-14T11:56:34.296676Z 1 [Note] A temporary password is generated for root@localhost: XXXXXX
$ sudo mysql_secure_installation
Enter password for user root: XXXXXX
★パスワードは「英字小文字、英字大文字、数字、記号」の組み合わせにしたら通る
 例）vagrant#VAGRANT1234
New password: vagrant#VAGRANT1234
Re-enter new password: vagrant#VAGRANT1234
〜 以降の質問は全て y で回答 〜
All done!
```

```terminal
$ mysql -u root -p
Enter password: vagrant#VAGRANT1234

★DB：hoge、USER：fuga、PASSWORD：vagrant#VAGRANT1234（※好きなのに変える）
mysql> create database hoge default character set utf8 collate utf8_general_ci;
mysql> CREATE USER fuga@'%' IDENTIFIED BY 'vagrant#VAGRANT1234';
mysql> GRANT ALL ON hoge.* TO fuga@'%';
mysql> CREATE USER fuga@'localhost' IDENTIFIED BY 'vagrant#VAGRANT1234';
mysql> GRANT ALL ON hoge.* TO fuga@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
```

※参考
[CentOS7.3にMySQL5.7をyumでインストールする](https://qiita.com/tech31/items/97b94fed3192b09ac5a9)
[CentOS7.1にMySQL 5.7をインストール](https://qiita.com/ksugawara61/items/336ffab798e05cae4afc)

# Laravel 6.x を Laravel5.x に入れ替える
### Laravel 6.x のアンインストール
```terminal
$ cd ~
$ rm -fdR laravel6
```

### Laravel5.x のインストール
```terminal
$ composer create-project --prefer-dist laravel/laravel laravel5 "5.6.*"
$ cd laravel5
$ composer require --dev barryvdh/laravel-ide-helper
$ composer require --dev squizlabs/php_codesniffer
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
```

```terminal:.env
$ vi .env
★下記を点線内に編集
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
↓
---
DB_DATABASE=hoge
DB_USERNAME=fuga
DB_PASSWORD=vagrant#VAGRANT1234
---
:wq
```

```terminal
$ php artisan migrate
$ php artisan db:seed
```

```terminal:bin/clear-laravel.sh
$ mkdir bin
$ vi bin/clear-laravel.sh
★下記を点線内をコピペ
---
#!/bin/bash
php artisan view:clear
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
composer dump-autoload
php artisan ide-helper:generate
php artisan ide-helper:models -N
php artisan ide-helper:meta
find . -name '._.DS_Store' -type f -ls -delete
---
:wq
$ chmod 755 bin/clear-laravel.sh
$ bin/clear-laravel.sh
```
### Nginx の設定を修正
```terminal:/etc/nginx/conf.d/default.conf
$ sudo vi /etc/nginx/conf.d/default.conf
★laravel6をlaravel5に置換
:%s/laravel6/laravel5/g
:wq

$ sudo systemctl restart nginx
```

### 動作確認（Macのhosts編集）
```terminal
sudo vi /private/etc/hosts
★下記を点線内に編集
192.168.56.104 laravel6.local
---
192.168.56.104 laravel5.local
---
:wq
```

ブラウザで確認
http://laravel5.local/
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/3f735218-18a5-d1c0-d8dc-c433bf65cad7.png)