vagrantでLAMP環境構築する

> 共有ディレクトリ　**ホスト：~/work/php**( \.\./) 　　**ゲスト：/mnt/project**
> ドキュメントルート　**/var/www/html/**のままで、この下にシンボリックリンク作成するようにする。

## 各種バージョン
```bash:バージョン
# cat /etc/redhat-release
CentOS release 6.9 (Final)

# mysql --version
mysql  Ver 14.14 Distrib 5.6.40, for Linux (x86_64) using  EditLine wrapper

# php -v
PHP 5.6.36 (cli) (built: Apr 25 2018 10:11:47)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
    
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 19 2017 16:43:38

# git --version
git version 1.7.1
```
<br>


## vagrant upする前

使用するbox
[centos/6](https://app.vagrantup.com/centos/boxes/6)

```bash
vagrant box add centos/6 #これいらないかも？
```

```bash
vagrant init centos/6
```

```ruby:Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "centos/6"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.synced_folder "../", "/mnt/project",
  :owner => "vagrant", :group => "vagrant",
  :mount_options => ["dmode=777,fmode=666"]

  config.ssh.insert_key = false

  config.vm.provision :shell, :path => "./provisioning.sh", :privileged => true
end
```

```sh:./provisioning.sh
#!/bin/sh


###
### iptables
###

service iptables stop
chkconfig iptables off


###
### yum
###

yum -y update


###
### date
###

echo -e 'ZONE="Asia/Tokyo"\nUTC=false' > /etc/sysconfig/clock

cp /etc/localtime /etc/localtime.org

ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime


###
### mysql 5.6
###

yum -y erase mysql-libs

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum install -y http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

yum install -y mysql mysql-server mysql-devel



service mysqld start

/usr/bin/mysqladmin -u root password 'root'



###
### php 5.6  +  apache
###

yum install -y --enablerepo=epel libmcrypt libtidy

yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof



###
### apache start
###

service httpd start

chkconfig httpd on


###
### git
###

yum install -y git-all


###
### link
###


mkdir /mnt/project/lesson
ln -fs /mnt/project/lesson /var/www/html/lesson

echo '<?php phpinfo();' > /var/www/html/index.php
echo 'hellolesson!' > /mnt/project/lesson/index.php

```
このままだと、puttyでログインする際うまくいかないので、これやっとく。
[Vagrantで立てたVMにSSHするまで (Windows)](https://qiita.com/skjune12/items/ed873a120f8461a57e20)

<br>

## SELinuxの変更
[ApacheのドキュメントルートをVagrantの共有フォルダにすると403 Forbiddenになる](http://little-braver.com/552/)

<br>

## AllowOverride None を AllowOverride All に変更
Fuelやるときは必要っぽい（そうじゃなければやらないくてよいかな？）
[Windows で、vagrant を利用した FuelPHP 用 LAMP 環境構築](https://qiita.com/yorozuone/items/99a152426284fd19ab7b)
[Vagrantで.htaccessファイルを有効にする設定](http://tanaka8.com/2014/08/vagrant-apache-htaccess/)

<br>

## シンボリックリンク作成されてる場所
```bash
# 練習用
/mnt/project/lesson
```
http://192.168.33.10/lesson/

<br>

## php.ini変更
#### FW関係なしに、基本的なとこ
```ini:/etc/index.ini
;バッファリングのなんか
output_buffering=4096

error_reporting=E_ALL & ~E_NOTICE

default_charset="UTF-8"

date.timezone=Asia/Tokyo

session.use_only_cookies=On (1でよさそうだけど)
```



## 確認

* http://192.168.33.10/　にアクセスしてphpinfo()出るか確認
* http://192.168.33.10/lesson/　にアクセスしてhellolesson出るか確認。
* 新しくなんかプロジェクト作る場合は、ドキュメントルートにpublicディレクトリのシンボリックリンク張る