開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. Laravel4のインストールと初期設定
no-image

Laravel4のインストールと初期設定

熱い日が続きますね……と書こうと思っていたら、雨が振って少し涼しくなりました。
あとは帰るまでに止んでくれるといいんですが。

さて、本日はPHPフレームワークLaravelのインストールと初期設定についてです。
試した環境はnginxとPHP-FPMですが、AppacheのVirtual Hostと.htaccessの設定例も追記します。

環境

  • Cent OS 5.9
  • nginx 1.4.1
  • PHP 5.4.16 PHP-FPMで動作

参考

Laravel公式サイトのドキュメント
Quickstart
Installation

公式ドキュメントの日本語訳
Laravelクイックスタート
インストール

Code Happy : Getting Started
 

インストール手順

1.事前準備

Composer

 →PHPライブラリの依存関係管理に利用されます。インストール方法は前回の記事を参照

php-mcrypt

 →暗号とハッシュの生成に利用されます。phpinfo()の出力情報にmcryptが見つからない場合は追加しましょう。

PHPのバージョン確認

 →LaravelはPHP5.3以降に導入された機能を利用しており、PHP5.3.7以降のバージョンが必須です。

2.ComposerでLaravelのプロジェクトを作成する

$ composer create-project laravel/laravel project-name --prefer-dist
しばらく待つと
project-nameというディレクトリ以下にLaravelのプロジェクトが作成されます。

$ ls project-name

CONTRIBUTING.md  artisan   composer.json  phpunit.xml readme.md vendor
app              bootstrap composer.lock  public      server.php

3.configファイルの初期設定

app/config/app.phpファイルを開きましょう。
このファイルにはハッシュ形式で設定が書かれています。

・アプリケーションキー(secret)の設定

暗号化に使われる32文字のキーを設定します。
※ComposerでLaravelプロジェクトを作成した際に自動設定されている場合はこの手順は必要ありません。
'key'の項目が未設定の場合はLaravelプロジェクトの直下で下記コマンドを実行してください。
$ php artisan key:generate
Application key [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] set successfully. などと表示され、app/config/app.phpファイルにキーが反映されます。

・タイムゾーン と地理情報の設定

こちらはオプションです。デフォルトではUTCと英語の設定になっているので、
・・・
'timezone' => 'Asia/Tokyo',
・・・
'locale' => 'ja',
・・・
などと変更します。

4.ディレクトリのパーミッションの設定

Webサーバの実行ユーザ(nginx / Appacheなら大抵appache)にapp/storage以下のディレクトリへの書き込み権を与えます。 ディレクトリまるごと実行ユーザに所有権を移しても良いですし、 所属グループのパーミッションを変更する形でも構いません。
$ chown -R nginx app/storage

5.Webサーバの設定

publicをドキュメントルートに指定して、必要ないファイルを間違って公開しないように設定することが推奨されています。
Code HappyではWebサイトのドキュメントルートから外部に設置したpublicへシンボリックリンクを張るという手も紹介されています。

下記が/etc/nginx/nginx.confのserverディレクティブの設定例です。

server {
    listen   80;
    server_name example.com;

    root   /path/to/laravel_project/public;
    index  index.html index.htm index.php;

    access_log /path/to/log_dir/access.log;
    error_log /path/to/log_dir/error.log;


    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }


    location ~ \.php$ {
        try_files $uri =404; #phpファイルが見つからない場合は404
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;

# Unixソケットを利用してFastCGIに渡す場合
# fastcgi_pass unix:/path/to/socket_dir/php-fpm.sock;

        fastcgi_index   index.php;
        fastcgi_split_path_info ^(.+\php)(/.+)$;

        # 以下はfastcgi_paramsファイルに直接記述してもOK
        fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name; 
        fastcgi_param PATH_INFO         $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED 	$document_root$fastcgi_path_info;
    }


    error_page      404 /index.php;

    #動かすための最小限の設定はここまで。
    #以下は静的ファイルに対する指定


    #画像やCSSなどのexpiresヘッダをせテチ
    location ~ \.(html|css|js|jpe?g|png|gif|svg|mpg|flv|swf)$ {
        expires 7d;
        break;
    }

    #.htaccess .gitなどへのアクセスを禁止
    location ~ /\.(ht|git|svn) {
        deny all;
    }

    #ファビコンとrobots.txtへのアクセスを記録しない
    location = /favicon.ico {
        acces_log off;
        log_not_found off;
    }

    location = /robots.txt {
        acces_log off;
        log_not_found off;
    }

}

6.参考:Appacheの場合

VirtualHostの設定例です。
<Virtualhost *:80>
   DocumentRoot "/path/to/laravel_project/public"
   <Directory "/path/to/laravel_project/public">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
   </Directory>
</Virtualhost>
デフォルトのpublic/.htaccessで上手く動かないい場合は、下記のように変更すると良いとのことです。
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]



インストールが成功してサイトにアクセスすると、 Laravelのマークと 「You have arrived.」というメッセージが表示されます。
TOPに戻る