【準備編】LaravelのWelcomeページが表示されたら、次にやること

# 【導入編】の続きです。
下記記事の続きを想定しております。
Vagrantで仮想サーバを立て、Laravelプロジェクトを構築。
Laravelのサンプル画面が立ち上がった時点から開始
https://qiita.com/katsuhito_01/items/439e3af4cea8ff00832c

# MySQLをインストール
Laravelで用いるデータベースを構築。
MySQLでもPostgressでも何でもOK。今回はとりあえずMySQLを使用。
特にDBを使わない（データは外部APIから持ってくる等）のであれば不要。

#### mariaDBを削除
CentOS7の場合、デフォルトでMySQL互換のmariaDBがインストールされている可能性がある。
競合を避けるため、念のため削除しておく。

```
# sudo yum remove mariadb-libs
# sudo rm -rf /var/lib/mysql/
```

#### yum リポジトリの追加
yumでインストールするため、MySQL公式のyumリポジトリを追加する。

```
# sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
```

#### インストールの実行
yumインストールを実行。実行後、念のためMySQLのバージョンを確認してみる。

```
# sudo yum -y install mysql-community-server
# mysql --version
mysql  Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using  EditLine wrapper
```
#### MySQLの起動
インストールの確認ができたら、MySQLを起動。
ついでにマシン起動時に自動的に立ち上がるようにしてしまう。

```
# sudo systemctl start mysqld.service
# sudo systemctl enable mysqld.service
```

#### 初期パスワードを確認
セキュリティ設定のための初期パスワードを確認。どこかにメモっておく。

```
# view /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: 初期パスワード
```
#### MySQLのセキュリティ設定
ログインするためにセキュリティ設定をしておく。
まず初期パスワードが聞かれるので、メモっておいたパスワードを入力。

```
# mysql_secure_installation
Securing the MySQL server deployment.

Enter password for user root:
```

新しいパスワードを入力し、再度同じパスワードを入力する。
※わかりやすいパスワードだと怒られます。

その後は対話式で色々設定を聞かれます。必要に応じてYかNかを入力していけば完了。
今回は全部Yでやりました。

```
The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:
```

#### ログインし使用するデータベースを作っておく
設定したパスワードでログインできるか確認。
ログイン出来たら、データベースをつくっておく。

```
# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> CREATE DATABASE mypage01_db;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mypage01_db        |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql>
```
#### .envファイルに設定情報を記述
Laravelプロジェクトディレクトリ直下に.envファイルがあるので、中にDB情報を記述。
（無い場合は、.env.exampleをコピーして作成）

```.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mypage01_db
DB_USERNAME=root
DB_PASSWORD=root
```
# VagrantのhomeディレクトリをSambaで共有
viやvimで直接弄り回し開発する等であれば不要。
今回はWindows上にvagrantでCentOS7を立て、CentOS7上にLaravel環境を構築している。
Windows側からエディタで資材を弄りまわしたいので、Sambaで何とかする。

Vagrantfileのsynced_folderも考えたが、いかんせん同期が遅く動作が重い…

#### Sambaをインストール
とりあえずsambaをインストールする。

```
# sudo yum install samba
```

#### Configをいじる

```
# sudo vi /etc/samba/smb.conf
```

```/etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        hosts allow = 127. 192.168.33. # vagrant環境に合わせてよしなに設定
        unix extensions = no　　　　　　# 追加
        wide links = yes               # 追加
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
```

#### アクセスパスワードの設定
Windowsからアクセスする際のパスワードを設定。
特にrootパスワードと同じでも問題ないので、よしなに設定。

```
# sudo pdbedit -a vagrant
# new password:
# retype new password:
```

#### Samba起動＆自動起動設定
Sambaを立ち上げつつ、マシン起動時に自動で立ち上がるようにしておく。

```
# sudo systemctl enable smb
# sudo systemctl start smb
```
#### Windowsエクスプローラーからアクセス
Windows側のエクスプローラーより、`\\192.168.33.10\vagrant`でアクセス。
CentOS7のvagrantホームディレクトリに入れる。

**Windowsコマンドプロンプト**で、適当なドライブに設定してしまってもよいかも。

```
$ net use Z: \\192.168.33.10\vagrant
```
#### シンボリックリンクの作成
CentOS7のvagrantホームディレクトリに、以下シンボリックリンクを作成。

```
# cd /home/vagrant
# ln -s /var/www/html/ html
```
これでWindows側よりLaravelのドキュメントルートへアクセスできるようになる。
あとはPHPSTORMやATOMなど、お好きなエディタで開けば弄り回せるようになる。

【次】https://qiita.com/katsuhito_01/items/dece7a66e92c7a213a4b