Laravel構築

Apacheインストール

```
# yum -y install httpd (yオプションは問い合わせに対して全て「y」で応答)

以下のコマンドで確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Aug  8 2019 11:41:18
```

起動確認

```
# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)
```

`Active: inactive (dead)` は停止

Apache起動

```
# systemctl start httpd
```

PHP インストール

- PHP5.4

**CentOS7の標準リポジトリのPHPバージョンが5.4**
（古い...サポート切れてるやろ:grin:）
PHP5.4以降をインストールする場合は、『PHP7.3』を参照（今回は7.3を例に）

```
# yum -y install php

以下のコマンド確認
# php -v
PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
```

- PHP7.3

EPELリポジトリをインストール

```
# yum -y install epel-release
```

REMIリポジトリをインストール（リポジトリの依存関係によりEPELリポジトリも同時にインストールされる）

```
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
```

PHP7.3をインストール

```
# yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-zip php-pecl-zip zip unzip git

以下のコマンドで確認
# php -v
PHP 7.3.11 (cli) (built: Oct 22 2019 08:11:04) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
```

CentOS7からMariaDBが標準となっているため、
MySQLをインストールするためには削除する必要がある。

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

MySQLのリポジトリをインストール

```
# yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
```

MySQLインストール

```
# yum install -y mysql-community-server

以下のコマンドで確認
# mysqld --version
/usr/sbin/mysqld  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)
```

MySQLの状態を確認（デフォルトでは停止のはず）

```
# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
```

`Active: inactive (dead)` は停止

MySQLを起動

```
# systemctl start mysqld

以下のコマンドで確認
# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-11-04 00:23:13 JST; 8s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 5342 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 5417 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─5417 /usr/sbin/mysqld

Nov 04 00:22:59 localhost.localdomain systemd[1]: Starting MySQL Server...
Nov 04 00:23:13 localhost.localdomain systemd[1]: Started MySQL Server.
```

`Active: active (running)` で起動を確認

MySQLの自動起動設定を確認する（デフォルトは有効のはず）

```
# systemctl is-enabled mysqld
enabled
```

`enable` なので有効

変更は以下のコマンドで行う

```
無効にする
# systemctl disable mysqld
Removed symlink /etc/systemd/system/multi-user.target.wants/mysqld.service.

有効にする
# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
```

composerをインストール

```
# curl -sS https://getcomposer.org/installer | php
コマンド設置
# mv composer.phar /usr/local/bin/composer

以下のコマンドで確認
# composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.9.1 2019-11-01 17:20:17
```

Laravelのインストーラーをダウンロード

```
# composer global require "laravel/installer"
```

プロジェクトを配置する場所のディレクトリのパーミッションを変更
（一旦、実行・書込・読込を許可）

```
# chmod 777 /var/www/html/
```

"sample"というプロジェクトを作成

```
$ composer create-project --prefer-dist laravel/laravel /var/www/html/sample
```

ドキュメントルート設定

```
# vi /etc/httpd/conf.d/***.conf（任意の名前）
<VirtualHost *:80>
    DocumentRoot /var/www/html/sample/public
    RewriteEngine On
    <Directory "/var/www/html/sample/public">
        AllowOverride All
    </Directory>
</VirtualHost>
```

confを修正したのでhttpd再起動

```
# systemctl restart httpd
```

ログを書込権限がないので、パーミッションを変更
（一旦、実行・書込・読込を許可）

```
$ chmod -R 777 /var/www/html/sample/storage/
```

[http://192.168.33.10](http://192.168.33.10)　にアクセス
（Vagrantで構築したため、デフォルトの192.168.33.10）