vagrantでlaravelの環境を構築する
2019-06-20
2019-06-20
なぜvagrantを使った環境構築をやるのか
docker使えばいいのでは、とおっしゃる方もたくさんいるかと思います。ですが、dockerはHyperVが使えないWindows Homeや、
古くてMacOSを最新にできないMacでは使えないのです
前準備として色々ダウンロード
VirtualBox:https://www.virtualbox.org/wiki/DownloadsVagrant:https://www.vagrantup.com/downloads.html
PowerShell:https://www.microsoft.com/en-us/download/details.aspx?id=54616
Windows7の方はPowerShellが古くて動かないので、更新を行ってください。
インストールが終わったら、早速環境を作っていきます。
Windowsならコマンドプロンプト、Macならデフォルトのターミナルで良いです。
```
D:¥Users¥bazil > mkdir vagrant
D:¥Users¥bazil > cd vagrant
D:¥Users¥bazil¥vagrant > vagrant init
```
自分のユーザーフォルダの下にvagrantディレクトリを作成し、
その中でinitするとVagrantfileが作成されます。
これを編集して環境を作っていきます。
Vagrantfileの編集
ではVagrantfileを編集していきます。メモ帳でもなんでも良いので、ファイルを開きます。
```
config.vm.box = "base"
```
上記の部分を下記に変更します。
```
# 使用するboxを指定
config.vm.box = "ncaro/php7-debian8-apache-nginx-mysql"
# メモリを1024MBに設定
config.vm.provider "virtualbox" do |vm|
vm.memory = 1024
end
# Guestポートを、Hostの何番ポートに転送するかを指定
config.vm.network :forwarded_port, guest: 80, host: 9000
# 共有フォルダの設定
config.vm.synced_folder "", "/var/www"
# Proxyを通してる場合のみ、下記を追加
config.proxy.http = "http://172.28.0.50:12080"
config.proxy.https = "http://172.28.0.50:12080"
config.proxy.no_proxy = "localhost,127.0.0.1"
```
これでVagrantfileの準備は完了です。
index.phpを作成する
次にindex.phpを作成します。作成するのはvagrantフォルダの中にhtmlフォルダを作成し、
その中に作成します。
```
D:¥Users¥bazil¥vagrant > mkdir html
D:¥Users¥bazil¥vagrant > cd html
D:¥Users¥bazil¥vagrant¥html > type nul > index.php
```
ファイルを作成したら、メモ帳などで開いて編集します
```
<?php
phpinfo();
?>
```
これでファイル作成は完了です。
Vagrantを起動させる
Proxyを通してる方のみ、先にproxyのpluginをインストールします```
D:¥Users¥bazil¥vagrant > vagrant plugin install vagrant-proxyconf
```
では起動させます
```
D:¥Users¥bazil¥vagrant > vagrant up
```
起動するまでしばらく待ちます。
完了したら、http://localhost:9000/にアクセスします。
PHPINFOの画面が表示されていればOKです。
PHPを7系にする
では次にPHPが5系になっているので、7系に変更します。作成した仮想環境にsshでログインします。
```
D:¥Users¥bazil¥vagrant > vagrant ssh
```
sshソフトやコマンドを使わなくても、
vagrantで作成した環境にはこれでログインすることができます。
ログインできたら下記コマンドをうっていきます
```
vagrant@debian-jessie:~$ sudo composer self-update
vagrant@debian-jessie:~$ sudo apt remove -y php5-fpm
vagrant@debian-jessie:~$ sudo chown -R vagrant:vagrant /var/www
vagrant@debian-jessie:~$ cd /var/www/
vagrant@debian-jessie:~$ composer create-project laravel/laravel laravel --prefer-dist
vagrant@debian-jessie:~$ exit;
```
全て完了したら、vagrantを再起動させます。
```
D:¥Users¥bazil¥vagrant > vagrant reload
```
再起動が完了したら、http://localhost:9000/に再度アクセスし、
PHPが7系に変更されていることを確認します。
環境を整える
viの入力方法を変更したり、操作しやすい環境にしていきます。```
D:¥Users¥bazil¥vagrant > vagrant ssh
```
まずはsshで接続します。
```
vagrant@debian-jessie:~$ vi ~/.vimrc
```
vimrcというファイルを作成し、下記を記述します。
```
set nocompatible
set backspace=indent,eol,start
```
次にRootになって、同じことを行います。
```
vagrant@debian-jessie:~$ sudo su -
root@debian-jessie:~# vi ~/.vimrc
```
先ほどと同様にvimrcを作成し、下記を入力します。
```
set nocompatible
set backspace=indent,eol,start
```
nginxの設定を行う
nginxのconfなどを修正します。```
vagrant@debian-jessie:~$ sudo vi /etc/nginx/sites-enabled/default
```
編集画面を開きます。
```
root /var/www/html;
```
この部分を変更します。
```
root /var/www/laravel/public;
```
さらに、下記も変更します。
```
try_files $uri $uri/ =404;
```
この部分を変更します。
```
try_files $uri $uri/ /index.php?$query_string;
```
nginxを再起動します。
```
vagrant@debian-jessie:~$ sudo service nginx restart
```
次にLaravelの設定です
```
vagrant@debian-jessie:~$ cd /var/www/laravel
vagrant@debian-jessie:/var/www/laravel$ php artisan key:generate
vagrant@debian-jessie:/var/www/laravel$ chmod -R 777 storage/
```
storageフォルダへの書き込み権限が変わらなかった場合は、
ログの書き込みができずに落ちてしまいます。
その場合はvagrant sshからexitして、
MacやWindows側で書き込み権限を与えてやると良いです。
http://localhost:9000/にアクセスし、Laravelの画面が表示されれば完了です。