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

PHP7とLaravel 5でFacebookアカウントでログインできるTODOアプリをつくる 2日目(Laravel5導入編)

Laravel 5

前回の記事に続いて、今回はLaravel 5の導入までをやってみます。

ariarijp.hatenablog.com

Composerのインストール

近年、PHPのライブラリーはComposerで管理することが一般的になっています。

Laravel 5もComposerで導入しますので、まずはComposerをインストールしましょう。

getcomposer.org

今回はcomposerをグローバルにインストールしますので、以下のコマンドをVM上で実行します。

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

インストールができたら、composerコマンドが使用できるようになっていることを確認しておきましょう。

$ composer -V
Composer version 1.0-dev (03299ff075236be27be356498d6c64def973fe41) 2016-01-10 20:34:53

上記のように、バージョン情報が表示されていればComposerは無事にインストールできています。

Laravel 5のインストール

続いて、Laravel 5をインストールします。

Laravel 5はcomposerコマンドでインストールできます。ドキュメントに従い、以下のコマンドを実行しましょう。

$ composer global require "laravel/installer"

ネットワークの状況によってはしばらく時間がかかりますが、これでLaravel 5の導入は完了です。簡単ですね。

念のため、以下のコマンドでlaravelコマンドが使用できるようになっていることを確認しておきましょう

$ laravel -V
Laravel Installer version 1.3.1

新規プロジェクトを作成

laravelコマンドを使って新規プロジェクトを作成します。

プロジェクトの作成にはlaravel new [プロジェクト名]というコマンドを使用しますが、このコマンドは新規ディレクトリーを作成します。

そのため、ディレクトリーの作成権限が必要になりますので、プロジェクトを作成する前に/var/wwwの権限を一時的に変更しておきましょう。プロジェクト作成後、権限を元にもどします。

$ sudo chown vagrant.vagrant /var/www

権限を変更したら、laravelコマンドで新規プロジェクトtodoを作成します。

$ cd /var/www
$ laravel new todo

プロジェクトを作成したら、いくつかのディレクトリーの権限を変更する必要があります。これらのディレクトリーはログやキャッシュを保持するためApacheの実行ユーザーでも書き込み可能である必要があります。

$ chmod -R 777 /var/www/todo/storage
$ chmod -R 777 /var/www/todo/bootstrap/cache

なお、ドキュメントにはphp artisan key:generateを実行してアプリケーションキーを変更するような記載がありますが、現在はlaravel newコマンドの一環としてキーの生成もしているようなので割愛します。

最後に、ブラウザーからアクセスできるようにするため/var/www/todo/publicをドキュメントルートにします。

ドキュメントルートを変更するには、Apacheの設定ファイルを編集するのが一般的かと思いますが、今回は作業を簡単にするため、/var/www/html/var/www/todo/publicシンボリックリンクにするような方法をとります。

以下のコマンドを実行し、シンボリックリンクを作成しましょう。

$ rm -rf /var/www/html
$ ln -s /var/www/todo/public /var/www/html

ここまでの作業が完了したら、ブラウザーで動作確認します。

http://192.168.33.10/

以下の様な画面が表示されれば、Laravel 5の導入は完了です。おつかれさまでした。

f:id:ariarijp:20160115011907p:plain

昨日に引き続き、ここまでの作業がvagrant up一発で完了するようなVagrantfileも用意しておきました。よろしければお使いください。

github.com