VagrantでLaravelの開発環境を作った
先日、職場で「来年からPHP(Laravel)やってもらうかも」と言われたので、
少し勉強をしようと思い、まずは環境を作ってみた。
PHPといえば最近7系にメジャーバージョンアップして、色々変化があったようです。
とはいえ、ドットインストールで少しPHPをやってみた事があるくらいで、全然PHPは書けない
(やばい・・)
最近はLaravel人気が高まっているらしい。
とりあえず、VagrantかDockerで環境構築できたら楽だなと思い、公式ページを見ていると、Homestead
を使うと楽にできそうだったので、試してみることにした。
Laravel Homestead - Laravel - The PHP Framework For Web Artisans
以下のソフトウェアが含まれたVagrantのBoxで簡単に環境が作れるものらしい。
- Ubuntu 16.04
- Git
- PHP 7.1
- Nginx
- MySQL
- MariaDB
- Sqlite3
- Postgres
- Composer
- Node (With Yarn, PM2, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
手順にそってインストールしていく。
Vagrant / Virtual Boxのインストール(アップデート)
※Virtual Boxが5.1系じゃないと駄目らしく、5.0.30 + Extensionで試した所、vagrant起動時にssh key関連で止まってしまい、原因が分からなくてかなりハマった。
Before launching your Homestead environment, you must install VirtualBox 5.1, VMWare, or Parallels as well as Vagrant. All of these software packages provide easy-to-use visual installers for all popular operating systems.
vagrantのboxを追加
% vagrant box add laravel/homestead
providerを聞かれたので、2(virtualbox)を選択
==> box: Loading metadata for box 'laravel/homestead' box: URL: https://atlas.hashicorp.com/laravel/homestead This box can work with multiple providers! The providers that it can work with are listed below. Please review the list and choose the provider you will be working with. 1) parallels 2) virtualbox 3) vmware_desktop Enter your choice: 2 ==> box: Adding box 'laravel/homestead' (v1.0.1) for provider: virtualbox box: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/1.0.1/providers/virtualbox.box ==> box: Successfully added box 'laravel/homestead' (v1.0.1) for 'virtualbox'!
※光回線で15分くらいかかった。
※ダウンロード中に以降の手順を先に進めてしまってもok
Homesteadをホームディレクトリにclone
% cd ~ % git clone https://github.com/laravel/homestead.git Homestead
Homesteadのイニシャライズ
% cd Homestead/ % bash init.sh Homestead initialized!
イニシャライズすると、~/.homestead/Homestead.yaml
に設定ファイルが生成される
ファイルを開いて以下の点を確認した。
- provider: virtualbox になっている
- nfsを有効にする
- ↓のように
type: "nfs"
を追記
- ↓のように
provider: virtualbox folders: - map: ~/Code to: /home/vagrant/Code type: "nfs"
また、vagrantのファイル共有のディレクトリが~/Code
になっているので、
それ用のディレクトリを作っておく
※ここは任意のディレクトリをfolders:のmapに指定してもok
% cd ~ % mkdir Code/
hostsの設定
/etc/hosts
に以下の一行を追加する。
192.168.10.10 homestead.app
vagrantの起動
ここまで設定が終わったら、vagrantを起動する
% cd ~/Homestead/ % vagrant up 起動時のメッセージ色々 % $ vagrant status Current machine states: homestead-7 running (virtualbox) The VM is running. To stop this VM, you can run `vagrant halt` to shut it down forcefully, or you can run `vagrant suspend` to simply suspend the virtual machine. In either case, to restart it again, simply run `vagrant up`.
Laravelのインストール
% vagrant ssh
※ここからはvagrant内での作業
laravelのインストール
※既に入っているよと言われたのでスキップして良さそう。
$ composer global require "laravel/installer" Changed current directory to /home/vagrant/.composer Using version ^1.3 for laravel/installer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Writing lock file Generating autoload files
プロジェクトの作成
今回はblogというプロジェクトを作成した。
$ cd Code/ $ mkdir -p ./Laravel/public $ cd Laravel/public/ $ laravel new blog
この状態でchromeで以下のURLを開くと
http://homestead.app/blog/public/
Laravelのページが表示された!
※自分は必要なかったが動かなければblog
ディレクトリの直下でphp artisan serve
を実行してみる。
実際にはURLが微妙なので、~/Code
直下でlaravel new blog
を実行し、
~/.homestead/Homestead.yaml
でsites
の設定を以下のように変えてあげると
http://homestead.app/
でアクセスできるはずなのでその方が良さそう。
sites: - map: homestead.app to: /home/vagrant/Code/blog/public
その他
vagrantの/home/vagrant/Code/
ディレクトリとホスト(mac)の/Users/${user name}/Code
ディレクトリはnfsでマウントされているので、ホスト側でコードを編集すれば、すぐに反映される。
<?php echo "hogehoge!"; ?>
なので、PhpStormやAtomなどでもそのまま開発ができそう。
環境作りで色々ハマって疲れたのでLaravelの学習はまた今度・・・