社畜系WEBエンジニアの消耗戦

読者です 読者をやめる 読者になる 読者になる

社畜系WEBエンジニアの消耗戦

修羅の国でせっせと働く社畜系WEBエンジニアのブログ

Homesteadのboxを落とすのが難儀なのでVagrantで立ち上げる

PHP Laravel

Laravelには超便利な環境構築ツールのHomesteadが用意されてるんですが、自宅の回線が細いのか、全くダウンロードが終わる気配がしませんww

でも、別に公式に準備されてる方法は一つじゃない。今回はvagrantを使って構築していきます。

前提条件

Composer導入済みであること

成果物

vagrantでLaravelの開発環境を構築する

手順

公式サイトに沿って進めていけば問題なし。

Laravel Homestead - Laravel - The PHP Framework For Web Artisans

よくよく考えると、Homesteadってプロジェクト個別設定とかするのって結構難儀な感じがするので、今回の手法で構築する方が正攻法な気がしています。

Instead of installing Homestead globally and sharing the same Homestead box across all of your projects, you may instead configure a Homestead instance for each project you manage. Installing Homestead per project may be beneficial if you wish to ship a Vagrantfile with your project, allowing others working on the project to simply vagrant up.

こう書いてあるしね。

では早速。

$ composer require laravel/homestead --dev
$ php vendor/bin/homestead make

で、公式にもありますけど、今回はせっかくなのでMariaDBを使いたいので、設定に追加します。これだけでMariaDBが使えちゃうのか。しゅごい。

box: laravel/homestead
ip: "192.168.20.20"
memory: 2048
cpus: 4
provider: virtualbox
+ mariadb: true

立ち上げる

ここから先は慣れ親しんだ方法です。これも全然早くはないけど、Homesteadで構築するよりはマシかな。。。

$ vagrant up
$ vagrant ssh

コケても頑張って何回かvagrant upしましょう。僕は何回もネットワークのコネクションが切れて何回もトライしました。(やっぱ自宅の回線がアレなのだろうか?一応フレッツなんですががががが)

プロジェクトを作成する

あとはプロジェクトさえ作ってしまえばちゃんちゃらちゃん。とりあえず何作るか決めてないので、デモアプリらしい名前にしておきましょう。

$ composer create-project --prefer-dist laravel/laravel laravel-demo-app

この時点で、http://192.168.10.10に繋げばHello Worldまで完成です。

で、ちょっと個人的にディレクトリ構成がキモいことになってしまったので、ちょちょーっといじって、こんな感じが僕のディレクトリ構成になってます。

プロジェクト配下にvagrant系のファイルも押し込んだ形ですね。こっちの方が楽だぞ(多分。

$ tree -L 1
.
├── Homestead.yaml
├── README.md
├── Vagrantfile
├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── config
├── database
├── gulpfile.js
├── package.json
├── phpunit.xml
├── public
├── resources
├── routes
├── server.php
├── storage
├── tests
└── vendor

余談:他の構築方法

Valetで構築する

LaravelではHomestead以外にも、Valetでの環境構築をサポートしています。Valetなんてものは僕は今初めて聞いたんですが、これ、どうやらMacローカルに構築するやつっぽいです。

しかもMac専用。

これを使うことは、多分無い。

Dockerで構築する

多分誰かがLaravel用のイメージを公開しているはずなので、それを使えばさくっと構築できると思います。

僕は探してないけど。

おわりに

Vagrantのboxがなかなか落ちてこずに苦戦しましたが、これでなんとかLaravelのスタートラインに立てました。いいDockerあったら教えてください(自分で作る気はない。