6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel Homesteadを利用してLaravelを利用するための準備をする

Last updated at Posted at 2016-10-15

Laravelの勉強をするために環境を構築した。
Laravelの公式パッケージでLaravel Homesteadというものが提供されているらしいので、それを利用することにした。

本記事をまとめている途中に情報収集していて気付いたのだが、公式サイトに詳しく載っていた…。
基本的にそっちをみた方がよい気がするので、このページに来た人用にリンクを貼っておきます。

公式:https://readouble.com/laravel/5.1/ja/homestead.html

※上記ページでは、Ubuntuのバージョンは14.04となっているが、最新のhomesteadではUbuntu16.04になっていた(2016/10 時点)。

Homestead利用準備

既にHomesteadを利用している場合。

% git clone https://github.com/laravel/homestead.git LaravelHomestead
% cd LaravelHomestead

ホストのマシンで初めてHomesteadを利用する場合。

% vagrant box add laravel/homestead
% git clone https://github.com/laravel/homestead.git LaravelHomestead
% cd LaravelHomestead
% bash ./init.sh

「~/.homestead」というディレクトリが出来ている。
その中に、Homestead.yml、after.sh、aliasesなどの共通の設定ファイルが存在している。

プロジェクト固有の設定ファイルは、プロジェクトルート直下の「src/stubs/」以下に入っている。

Homestead.yamlに、IPやメモリ、sshの設定などを記載する。
after.shには、vagrant実行時にHomestead環境に反映するものを記載する。

日本語環境用に設定する例

after.sh
# !/bin/sh

sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
sudo locale-gen ja_JP.UTF-8
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8

Vagrantの実行

後は、通常通りVagrantを実行する。

% vagrant up

webサイトにアクセス

Nginxが自動起動しているので、Homestead.yamlの「sites」に設定した項目に従ってWebサイトにアクセス可能である。

Homestead.yamlについて

IP、メモリ、CPU、Vagrantのprovider(VirtualBox、他)、データベース、ssh、ファイルの同期など設定ができる。
同期するディレクトリは、複数設定できる。

Homestead.yaml
folders:
    - map: ~/work/laravel
      to: /home/vagrant/project

    - map: ~/work/settings
      to: /home/vagrant/settings

sites:
    - map: homestead.app
      to: /home/vagrant/project/Laravel/public

nfsを利用して同期する場合、HHVMを利用する場合には、以下のようにする。

Homestead.yaml
folders:
    - map: ~/work/laravel
      to: /home/vagrant/project
      type: "nfs"

sites:
    - map: homestead.app
      to: /home/vagrant/project/Laravel/public
      hhvm: true

Laravelのインストール

専用インストーラでインストール

% composer global require "laravel/installer"

プロジェクトを作成

% laravel new プロジェクト名

composerでインストール

% composer create-project laravel/laravel:5.1 プロジェクト名

Laravelを日本語化

設定ファイルなどのコメントを日本語へ翻訳するには、comja5をインストールする。

プロジェクトにインストール
% composer require laravel-ja/comja5:~1
% ./vendor/bin/comja5
globalにインストール
% composer global require laravel-ja/comja5:~1
% comja5

インストール後の設定

パーミッションの設定

開発環境の場合
※本番の場合には、適切なパーミッションを設定すること。

% sudo chmod -R a+w storage/*
% sudo chmod -R a+w bootstrap/cache

コンパイル済みコアファイルの削除

クラスファイル読み込みの速度向上のために、ファイルを連結する仕組みを提供している。
スタックトレースは、この連結されたファイルを示すため、開発時には、削除した方がよい。

常に削除する場合
% php artisan clear-compiled
デバッグモードのときにのみ削除
% php artisan optimize

Whoops

% composer require filp/whoops:~1.0
app/Exceptions/Handler.php
public function render($request, Exception $exception)
{
    if (config('app.debug')) {
        $whoops = new \Whoops\Run;
        $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
        return new \Illuminate\Http\Response(
            $whoops-handleException($exception),
            $exception->getStatusCode(),
            $exception->getHeaders()
        );
    }
    return parent::render($request, $exception);
}

サーバを立ち上げる

サーバを立ち上げる
% php artisan serve [--host=ホスト名] [--port=ポート番号]

ドキュメントルート

ホストOSからLaravelアプリにアクセスするためには、Laravelアプリがnginxのドキュメントルートとなるように設定する必要がある。

~/project以下に「sample」というlaravelのプロジェクトを作った場合は、Homestead.yamlで「to: /home/vagrant/project/Laravel/public」と設定しているので、以下のコマンドを実行することで「http://[IP]:80」にアクセスするとLaravelアプリケーションにアクセスできる。

% cd ~/project/Laravel
% ln -s ~/project/sample/public public
6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?