Laravelのインストールと利用までの各種設定 | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

Laravel 始めました。

ってことでまずはインストール編です。

Laravel5がリリースされていますが、今回はバージョン4.2のものをインストールしています。



Laravelをインストールする


LaravelをインストールするにはLaravelのインストーラを利用する方法と、composerを利用する方法の種類があるのですが、インスト ーラーを利用する方法はバージョンが指定できずに最新版がインストールされてしまうため、今回はcomposer経由でインストールする方法を書いています(一応インストーラーバージョンも後述してます)。

composerのインストールに関しては以前に書いた「[Composer] PHPのパッケージ管理にComposerを使う 」を参照してください。


Laravelをインストールしたい適当なディレクトリに移動し、下記のコマンドを実行するだけでインストールができます。


$ composer create-project laravel/laravel=4.2.* yourdir --prefer-dist

※ yourdirはLaravelのプロジェクトディレクトリ名で自由に決めれます。

※ 4.2はバージョンで指定しなかったら最新版がインストールされます。


Laravelはエラーメッセージなどを各言語にローカライズする仕組みがあり、ソース内のコメントなども含めて有志があらかじめ日本 語化しているパッケージも存在します。

これを利用したい場合は、下記のようにlaravel-jaのリポジトリを指定してインストールします。


$ composer create-project laravel-ja/laravel=4.2.* laravel --prefer-dist

どっちを利用しても、一応Laravel4.2の最新バージョンがインストールされます。

中身の違いはローカライズされたファイルやソース内のコメントが日本語化されているだけの違いになります。(確認した範囲では一部でごくごく小さな差分はあるようですが)


インストールしたLaravelのバージョンを確認したい場合はlaravel用ディレクトリ内で下記のようにコマンドを実行します。


$ cd laravel
$ php artisan --version
Laravel Framework version 4.2.17

Laravelの最新バージョンを利用したい場合、Laravelインストーラを利用することもできます。

この場合、まずはcomposer経由でLaravelインストーラをインストールします。


$ composer global require "laravel/installer=~1.1"

あとは、インストールしたlaravelコマンドを利用して同様にlaravelのプロジェクトディレクトリを作成します。


$ /path/to/.composer/vendor/bin/laravel new yourdir

余談ですが、Laravelインストール時に下記のようにZipArchiveがないって怒られた場合は、PHPのconfigureオプションに--enable-zipを付けて再コンパイルしましょう(PHPのパッケージ版の場合はzlib-develあたりをインストールすればいいっぽい)。


Fatal error: Class 'ZipArchive' not found in /path/to/.composer/vendor/laravel/installer/src/NewCommand.php on line 110

マニュアル を見ると--with-libzipオプションが使えるよ!見たいな書き方をし ているんですけど、このオプションを付けてもZipArchiveは使えないみたいです。



Laravelなどの各種設定


基本的に、Laravel内のpublicディレクトリをWebサーバーのドキュメントルートに指定すればアクセスできるようになります。

Apacheの場合は下記。


<virtualhost />
  DocumentRoot "/path/to/laravel/public"
  ServerName www.example.com
  ServerAdmin mail@example.com
</virtualhost />

<Directory "/path/to/laravel/public">
    AllowOverride all
</Directory>

後半の設定は、laravelディレクトリ内のpublicディレクトリにある,htaccessの設定を上書きできるようにするためのもので、この辺は元の設定がどうなっているかで判断してください。

後はApacheを再起動すれば利用できるんですけど、日本語環境で使う場合は幾つか設定を変えておいたほうが便利です。

この設定は、laravel/app/config/app.phpファイルにあるので下記のように2箇所編集しておきましょう。


'timezone' => 'Asia/Tokyo',

'locale' => 'ja',

localeを指定することで、laravel/app/lang/ja/の下にある各種メッセージファイルが読み込まれます。

日本語化されているLaravelパッケージを利用した場合は、あらかじめこの辺のローカライズされたファイルが配置されています。


もし、既にWebサーバーに別のフレームワークやアプリケーションが動いていて、Webサーバーのドキュメントルートを変更することが 難しいといった場合は、下記のようにAliasを用意することで回避することができます。

Apacheの場合はhttpd.confに下記の設定を追加します。


Alias /foo "/path/to/laravel/public"

次に、laravel/public/.htaccessを以下のように編集します。


<ifmodule />
    <ifmodule />
        Options -MultiViews
    </ifmodule />

    RewriteEngine On
    RewriteBase /foo
    # 最後がスラッシュのURLでアクセスされた場合のリダイレクト
    RewriteRule ^(.*)/$ /foo/$1 [L,R=301]

    # フロントコントローラーへの処理
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</ifmodule />

追加したのはRewriteBaseの設定で、そのすぐ下のRewriteRuleの設定は、スラッシュつきのURLにアクセスされた場合にリダイレクトする処理を合わせて/foo付きのURLにするように編集しています。

この設定により、www.example.com/foo/ のURLでLaravelにアクセスできるようになります。


これからもう少し学びながら記事をまとめていきたいと思います。