【laravel5.5】Proxy有りの環境でLaravelの開発環境を構築する

# 目的
Windows7で
・Vagrant
・VirtualBox
を使ってlaravel5.5の開発環境を構築する。
ただしProxyを介しているので
いくつか別途Proxy用の設定があったので、
それを含めて記述する。

# 環境
Windows7 Professional 32bit
Vagrant 1.9.5
VirtualBox 5.1.22
CentOS7.4

# VirtualBoxとVagrantのインストール
Vagrantをダウンロードしてインストールする。
https://www.vagrantup.com/downloads.html

VirtualBoxをダウンロードしてインストールする。
https://www.virtualbox.org/

必要であれば、gitBashもインストールする。(Git Bash上でコマンドを打つため)
https://git-scm.com/download/win

# Vagrant上の処理その１
Vagrantのファイルを生成したい任意のフォルダに移動します。
ex.C:\Users\matsuo\MyVagrant

Vagrantファイルを生成します。

```ruby:ターミナル(Vagrantの初期化)
 vagrant init bento/centos-7.4
```

# Vagrantfileの設定
C:\Users\matsuo\MyVagrantにVagrantfileが生成されるので、
これを編集します。

開発環境のIPアドレスを指定したい場合は下記の設定をします。
ipは任意です。
forwarded_portは任意です。

```ruby:Vagrantfile(IPアドレスの指定)
 config.vm.network "private_network", ip: "192.168.75.10"
 config.vm.network "forwarded_port", guest: 22, host: 2226
```

Proxyの設定をします。
vagrant-proxyconfは後程インストールします。

```ruby:Vagrantfile(Proxyの設定)
  Vagrant.configure(2) do |config|
    # プロキシ設定
    if Vagrant.has_plugin?("vagrant-proxyconf")
        config.proxy.http     = "http://{proxy_ip}:{proxy_port}"
        config.proxy.https    = "http://{proxy_ip}:{proxy_port}"
        config.proxy.no_proxy = "localhost,127.0.0.1,192.168.75.10"
    end
  end
```

```ruby:Vagrantfile(必要であれば)
   #WindowsのローカルとVegrant側とでファイルを同期させたい場合
   config.vm.synced_folder "../html" , "/var/www/html"
   # C:\Users\matsuo\html と /var/www/html　が同期されます。
```

# Vagrant上の処理その2
vagrant-proxyconfをインストールします。

```ruby:ターミナル(vagrant-proxyconfのインストール)
 vagrant plugin install vagrant-proxyconf
```

Vagrantから仮想マシンを起動します。

```ruby:ターミナル(vagrantの生成)
 vagrant up
```

仮想マシンの状況を確認します。

```ruby:ターミナル(vagrantの確認)
 vagrant status
```

ここまででCentOSが起動してますか？

# CentOSにてProxyの設定
ターミナルからCentOSにログインします。

```ruby:ターミナル(CentOS)
 vagrant ssh
```

ログイン名、パスワードともにデフォルトでは
vagrant
になっています。

CentOS側でプロキシの設定を行います。

```ruby:ターミナル(CentOS)
 sudo vi /etc/yum.conf
```

から設定にて

```ruby:/etc/yum.conf
 #proxy configuration
 proxy=http://{proxy_ip}:{proxy_port}
```
を設定します。
次に各コマンドを実行します。

```ruby:ターミナル(CentOS)
 # 時間が掛かります
 sudo yum -y update
 # 必要であれば
 sudo yum -y install git
 # laravelをインストールする際に必要
 sudo yum -y install zip unzip
```

laravelをインストールするため各種リポトロジを登録します。
rpmコマンドはproxy設定をコマンドにて入力します。

```ruby:ターミナル(CentOS)
 su
 # epel リポトロジ追加
 yum -y install epel-release
 # remi リポトロジ追加
 rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm --httpproxy {proxy_ip} --httpport {proxy_port}
 #PHP インストール
 yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
```

CentOS側のproxyを設定します。

```ruby:ターミナル(CentOS)
　vi /etc/profile
　PROXY='{proxy_ip}:{proxy_port}' # proxyサーバのドメインとポートを指定
  export http_proxy=$PROXY
  export HTTP_PROXY=$PROXY
  export https_proxy=$PROXY
  export HTTPS_PROXY=$PROXY
  source /etc/profile
```

# Composerのインストール
Composerをインストールします。

```ruby:ターミナル(CentOS)
 # ダウンロード
 curl -sS https://getcomposer.org/installer | php
 # composerの登録
 sudo mv composer.phar /usr/local/bin/composer
 # domposerのバージョン確認
 composer --version
```

# laravelのインストール
laravelをインストールします。

```ruby:ターミナル(CentOS)
 # /var/www/html配下にsample01プロジェクトを生成
 $ composer create-project laravel/laravel /var/www/html/sample01 --prefer-dist
 # 権限
 chmod 777 /var/www/html/sample01
 # 再起動
 systemctl restart httpd

 # 私の環境ではこちらも設定する必要がありました。
 chmod 777 /var/www/html/sample01/storage/logs
 chmod 777 /var/www/html/sample01/storage/framework/sessions
 chmod 777 /var/www/html/sample01/storage/framework/views

```

#ブラウザで表示させる
ローカルPCのブラウザから http://192.168.75.10/sample/public
へアクセスするとトップ画面が表示される。