vagrantでPHPのローカル開発環境を構築する

#はじめに
初めて記事を更新します。文章を書くのはあまり得意ではないので
分かりにくいところが多々あると思いますがご容赦ください。

現在、Webエンジニアを目指してスクールで勉強しています。
今回はvagrantでPHPの動作環境を一から構築したので
備忘録の意味もこめて投稿します。

#環境について
- windows10
- VirtualBox　バージョン 6.0.12
- Vagrant　バージョン　2.2.5
- box追加済み（os名：centos64）

参考：
[ドットインストールのvagrant入門：Vagrantとはなにか？](https://dotinstall.com/lessons/basic_vagrant/24101)
[ドットインストールのvagrant入門：vagrantbox.esを使ってみよう]
(https://dotinstall.com/lessons/basic_vagrant/24103)

#vagrant立ち上げまで
コマンドプロンプトを立ち上げて、以下のコマンドを実行します。
作成したフォルダ内でOSを立ち上げます。

```ruby:コマンドプロンプト
mkdir [フォルダ名]
cd [フォルダ名]
vagrant init centos64
vagrant up
vagrant ssh
```
#httpインストールとおまじない
何をしているか、正直ちゃんと理解していないためおまじないと書きました。
ただ試したところ、おまじないを打たないと正しく動かなかったので必須です。

```ruby:ssh接続中
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
sudo service iptables stop
sudo chkconfig iptables off
```

参考：
[ドットインストールのvagrant入門：仮想マシンに接続してみよう](https://dotinstall.com/lessons/basic_vagrant/24106)

#共有フォルダを作る
開発をしやすくするために必ず実行しましょう。
本来は、sshでOSに乗り込んで（表現が間違っているかもしれません。すみませんがニュアンスで書きます）
フォルダ「var」配下の「www」配下の「html」内に「index.php」等のファイルを配置することで
ブラウザから参照することができるようになります。
しかし、いちいちコマンド内でファイルを編集するもしくは
テキストエディタで編集したのち、ファイルを指定配下に上書き保存するのは大変面倒です。
以下のコマンドを実行することでテキストエディタで編集したものを保存するだけでブラウザから参照することができるようになります。

ただし編集するファイルは指定の箇所に配置します。
先ほどOSを立てたフォルダ内で、**「Vagrantfile」というファイルが存在するフォルダ内に保存してください。**


```ruby:ssh接続中
sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html
```

参考：
[ドットインストールのvagrant入門：共有フォルダを使ってみよう](https://dotinstall.com/lessons/basic_vagrant/24108)

#PHPもインストールする
```ruby:ssh接続中
sudo yum -y install php
```

#Vagrantfileを編集する
sudo vi [ファイル名]で編集モードになりますが
上書き保存する際は、「esc」押下 →　":wq"入力 →「enter」押下をします。

```ruby:ssh接続中
cd /vagrant
sudo vi Vagrantfile
```

「config.vm.network "private_network", ip: "192.168.33.10"」という一行がコメントアウトされているかと思います。
以下の通り、コメントアウトを外します。

```ruby:Vagrantfile
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"
```

#httpd.confを編集する

以下のコマンドでhttpd.confの編集モードに入ります。
私はこのファイルをなかなか見つけることができなかったので、頑張って探しましょう。
一度ルートディレクトリまでのぼってから以下のコマンドを実行するなど、試してみてください

```ruby:ssh接続中
sudo vi /etc/httpd/conf/httpd.conf
```

下記の通り記述されている箇所を探してください。結構下のほうです。

```ruby:http.conf
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
```

下の通り、二行を追加してください。
最後は、「esc」押下 →　":wq"入力 →「enter」押下で上書き保存します。

```ruby:http.conf
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
```

#vagrantを再起動する
とても大切なので忘れずに実行しましょう。

```ruby:ssh接続中
exit
```

SSH接続を抜けたあとに、そのまま以下のコマンドを実行します。

```ruby:コマンドプロンプト
vagrant reload
```

#ブラウザで表示してみる
OSを立てたフォルダの**Vagrantfileの存在する場所**に、「index.php」を作成し、
下画像の通り、phpを記述します。
![キャプチャ_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500332/a30f4d1d-c7e6-19e0-4102-e9359f315ede.png)

ブラウザで「192.168.33.10/index.php」を開きます。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500332/b41e5691-1a06-b186-e64f-4700ca00ff77.png)


みごと開くことができました。


#最後に
ドットインストールを参考にして構築したため、内容がだいぶ似ていますが
PHPで記述してブラウザに表示させるのは大変苦労しました。

ぜひ参考にしてもらえると嬉しいです。