インストール
サーバ要件
Laravelフレームワークを動作させるには多少のシステム要件があります。Laravel Homestead仮想マシンでは、要求がすべて満たされています。そのため、Laravelのローカル開発環境としてHomesteadを活用されることを強く推奨します。
しかし、Homesteadを使用しない場合は、以下の要件を満たす必要があります。
- PHP >= 7.2.5
- BCMath PHP拡張
- Ctype PHP拡張
- Fileinfo PHP extension
- JSON PHP拡張
- Mbstring PHP拡張
- OpenSSL PHP拡張
- PDO PHP拡張
- Tokenizer PHP拡張
- XML PHP拡張
Laravelのインストール
LaravelはComposerを依存パッケージの管理に使用しています。ですから、Laravelを始める前に、自分の開発機にComposerを確実にインストールしておいてください。
Laravelインストーラ
最初にComposerを使用し、Laravelインストーラをダウンロードします。
composer global require laravel/installer
皆さんのシステムのどこでlaravel実行ファイルが設置されても動作するように、Composerのシステム全体のvendor/binディレクトリを$PATH
へ登録してください。このディレクトリはオペレーティングシステムにより場所が異なります。通常は、以下の場所です。
- macOS:
$HOME/.composer/vendor/bin
- Windows:
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
- GNU/Linuxディストリビューション:
$HOME/.config/composer/vendor/bin
もしくは、$HOME/.composer/vendor/bin
グローバルなComposerのインストールパスを見つけるには、composer global about
を実行し、最初の行を確認してください。
インストールし終えたら、laravel new
コマンドにより、指定したディレクトリに真新しいLaravelプロジェクトを作成できます。たとえば、laravel new blog
を実行すると、blog
という名前のディレクトリへ、必要とするパッケージが全部揃った、真新しいLaravelがインストールされます。
laravel new blog
Composer Create-Project
ターミナルでComposerのcreate-project
コマンドを実行し、Laravelをインストールする方法もあります。
composer create-project --prefer-dist laravel/laravel blog
ローカル開発サーバ
PHPがローカルにインストール済みで、PHPの組込み開発サーバをアプリケーションサーバとして使いたい場合は、serve
Artisanコマンドを使用します。このコマンドは、開発サーバをhttp://localhost:8000
として起動します。
php artisan serve
より堅牢なローカル開発の選択肢として、HomesteadとValetも利用できます。
設定
Publicディレクトリ
Laravelをインストールできたら、Webサーバのドキュメント/Webルートがpublic
ディレクトリになるように設定してください。このディレクトリのindex.php
は、アプリケーションへ送信された、全HTTPリクエストを始めに処理するフロントコントローラとして動作します。
設定ファイル
フレームワークで使用する設定ファイルは、すべてconfig
ディレクトリ下に設置しています。それぞれのオプションにコメントがついていますので、使用可能なオプションを理解するため、ファイル全体に目を通しておくのが良いでしょう。
ディレクトリパーミッション
Laravelをインストールした後に、多少のパーミッションの設定が必要です。storage
下とbootstrap/cache
ディレクトリをWebサーバから書き込み可能にしてください。設定しないとLaravelは正しく実行されません。Homestead仮想マシンを使用する場合は、あらかじめ設定されています。
アプリケーションキー
次にインストール後に行うべきなのは、アプリケーションキーにランダムな文字列を設定することです。ComposerかLaravelインストーラを使ってインストールしていれば、php artisan key:generate
コマンドが、あらかじめ設定しています。
通常、この文字列は32文字にすべきです。キーは.env
環境ファイルに設定されます。もし、.env.example
ファイルをまだ.env
へコピーしていなければ、今すぐ行ってください。アプリケーションキーが設定されていなければ、ユーザーセッションや他の暗号化済みデーターは安全でありません!
その他の設定
Laravelのその他の設定は、最初に指定する必要がありません。すぐに開発を開始しても大丈夫です! しかし、config/app.php
ファイルと、その中の記述を確認しておいたほうが良いでしょう。アプリケーションに合わせ変更したい、timezone
やlocal
のような多くのオプションが含まれています。
以下のようなLaravelのコンポーネントについても、設定しておいたほうが良いでしょう。
Webサーバ設定
ディレクトリ設定
Laravelは常にWebサーバで設定した「Webディレクトリ」のルートから提供する必要があります。「Webディレクトリ」のサブディレクトリでLaravelアプリケーションを提供しようと試みてはいけません。そうした試みはアプリケーションの中に存在するセンシティブなファイルを曝してしまう可能性があります。
きれいなURL
Apache
URLパスにフロントコントローラのindex.php
を付けなくても良いように、Laravelはpublic/.htaccess
ファイルを用意しています。LaravelをApache上で動作させるときは、確実にmod_rewrite
モジュールを有効に設定し、そのサーバで.htaccess
ファイルを動作させます。
Laravelに用意されている.htaccess
ファイルが、インストールしたApacheで動作しない場合は、以下の代替設定を試してください。
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx
Nginxを使用する場合は、すべてのリクエストがindex.php
フロントコントローラへ集まるように、サイト設定に以下のディレクティブを使用します。
location / {
try_files $uri $uri/ /index.php?$query_string;
}
HomesteadかValetを使用する場合は、きれいなURLの設定は自動的に行われます。