Vagrantで開発環境を構築（3.PHP開発環境編）

## 目的

- 勉強の一貫で記事をまとめる．
- VirtualBox上にPHPの開発環境を構築する．

前回：[Vagrantで開発環境を構築（2.仮想環境設定編）](https://qiita.com/koukibuu3/items/8056d23219784587a90f)
今回：Vagrantで開発環境を構築（3.PHP開発環境編）
次回：[Laravel 開発環境の構築（CentOS7）](https://qiita.com/koukibuu3/items/300ce50a9acb8674ccf3)

## Apacheのインストール

**1. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo yum install httpd # Apacheをインストールする

$ httpd -v    # 確認
```

**2. `/etc/httpd/conf/httpd.conf` を編集する．**

```conf:httpd.conf
User vagrant    # 66行目

Group vagrant    # 67行目
```

**3. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo systemctl start httpd # Apacheを起動

$ sudo systemctl enable httpd # Apacheの自動起動を有効化
```

**4. ApacheのWelcome画面にアクセスしてみる．**

http://192.168.33.10/ もしくは http://localhost:8000 にブラウザでアクセス．
ここまでの手順が正常に済んでいればWelcome画面が表示されるはず．


## phpのインストール

phpをインストールするには，EPELリポジトリ，Remiリポジトリを追加する必要がある．

**1. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo yum install epel-release # EPELリポジトリを追加

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # RPMリポジトリを追加

$ yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-mysqlnd php-xml # PHP，他各種パッケージをインストール

$ php -v # 確認
```

参考：[yumリポジトリ追加リスト 完全版](https://qiita.com/bezeklik/items/9766003c19f9664602fe)
参考：[【yum入門】epel, remiなどのレポジトリをyumに追加する方法](https://uxmilk.jp/9315)

**2. `/etc/httpd/conf/httpd.conf` を編集する．**

```conf:httpd.conf
AllowOverride All # 103行目，125行目，151行目

DirectoryIndex index.php index.html # 164行目
```

**3. Apacheを再起動する．**

```Bash:ターミナル
$ sudo systemctl restart httpd.service # Apacheを再起動
```

**4. サンプルページを作成する．**

`/var/www/html` 配下に`index.php`を作成する．

```php:index.php
<?php
    echo 'Hello world.';
?>
```

再び http://192.168.33.10/ にアクセスすると `Hello world.` が出力されていることが確認できる．

## composer のインストール

[composer](https://getcomposer.org)は，依存性管理ツールというもので，フレームワーク等を使って開発するときにもとても役に立つ代物．

**1. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ curl -sS https://getcomposer.org/installer | php # composerをインストール

$ sudo mv composer.phar /usr/local/bin/composer

$ composer -V # 確認
```

参考：[PHP開発でComposerを使わないなんてありえない！基礎編](https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94)

## mariaDBのインストール

参考：[mariaDBとは](https://www.heartcore.co.jp/lineup/mariadb/index.html)

**1. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo yum remove mariadb marinadb-libs # インストール済みのmariaDBを削除
```

**2. `/etc/yum.repos.d/MariaDB.repo`にインストール元を追加する．**

```conf:MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```

**3. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo yum install --enablerepo=mariadb MariaDB-common MariaDB-devel MariaDB-shared MariaDB-compat MariaDB-server MariaDB-client # mariaDBをインストール
```

**4. ターミナルで下記のコマンドを実行．**

```Bash:ターミナル
$ sudo systemctl start mariadb.service # mariaDBを起動

$ sudo systemctl enable mariadb.service # mariaDBの自動起動を有効化
```

**5. テスト接続をする．**

```sql:ターミナル
$ mysql -u root

MarinaDB [(none)]> SHOW DATABASES;
MarinaDB [(none)]> USE test;
MarinaDB [test]> SHOW TABLES;
MariaDB [test]> CREATE TABLE sample (id int auto_increment, name varchar(30), index(id));
MariaDB [test]> insert into sample (name) values ('Yamada Taro');
MariaDB [test]> insert into sample (name) values ('Tanaka Hanako');
MariaDB [test]> exit
```

**6. PHPからも接続してみる．**

```php:index.php
<?php
    $dsn = 'mysql:dbname=test';
    $user = 'root';
    $pass = '';

    try
    {
        $db = new PDO($dsn,$user,$pass);
        $sql = "SELECT * FROM sample";
        foreach ($db -> query($sql) as $row)
        {
            echo($row['id'] . ":" . $row['name'] . "<br>");
        }
    }
    catch(PDOException $e)
    {
        die("die");
    }
    $db=null;
?>
```

再び http://192.168.33.10/ にアクセス


## まとめ

以上で仮想環境の設定が完了．
次回からはPHPのフレームワークの開発環境を構築していく．

前回：[Vagrantで開発環境を構築（2.仮想環境設定編）](https://qiita.com/koukibuu3/items/8056d23219784587a90f)
今回：Vagrantで開発環境を構築（3.PHP開発環境編）
次回：[Laravel 開発環境の構築（CentOS7）](https://qiita.com/koukibuu3/items/300ce50a9acb8674ccf3)