Laravel5.7: Laravelをインストールする


親記事

Laravel5.7で基本的なCRUDを作る

Laravelをインストールする

「Laravelインストーラ」ではなく、Composerのcreate-projectコマンドでインストールします。
readouble.com: Laravelのインストール

下記を実行すると、現在の場所に5.7というフォルダが作られ、その中にLaravelがインストールされます。
指定するフォルダ名は自由です。

PowerShell
> composer create-project --prefer-dist laravel/laravel 5.7

動作確認をする

下記を実行し、ブラウザでhttp://127.0.0.1:8000へアクセスしてください。

PowerShell
> php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

下のように表示されれば成功です。

上のコマンドの内部では、PHPの組み込みサーバーを使っています。
PHP公式ドキュメント: ビルトインウェブサーバー

XAMPPのApacheでページを処理する正式な方法は、次の章で紹介します。


(余談) Laravelインストーラを使う場合

公式ドキュメントではLaravelインストーラを利用する方法が最初に紹介されており、私も以前はインストーラを使っていました。
しかし、依存しているsymfony/consoleの要求バージョンが、他のパッケージ(phpDocumentor2.9)での要求バージョンと異なり、どちらか一方を削除しなければならないため、私はLaravelインストーラの方を削除しました。

通常の導入方法

PowerShell
# 新規にLaravelインストーラを追加する場合
> composer global require laravel/installer

# すでにLaravelインストーラが存在する場合は、更新を確認する
> composer global outdated laravel/installer
(中略)
versions : * v1.4.1
latest   : v2.0.1 (最新版がある!!)

# 古い場合は更新する
> composer global update laravel/installer

# Laravelアプリを新規作成する
> laravel new basic-crud

遭遇した問題

v1.xのLaravelインストーラでは問題ありませんでした。
v2.xに更新しようとすると、下記のようにsymfony/consoleはv3.xまたはv4.xにしろと警告されます。

PowerShell
> composer global update laravel/installer
(中略)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install laravel/installer v2.0.1
    - Conclusion: remove symfony/console v2.8.34
    - Installation request for laravel/installer 2.*
    - Conclusion: don't install symfony/console v2.8.34
    - laravel/installer v2.0.0 requires symfony/console ~3.0|~4.0

いったんv1.xのLaravelインストーラを削除して新規にv2.xのLaravelインストーラを入れようとするものの、ダメでした。
symfony/consoleが他のパッケージで使われていないかをwhyコマンドで確認すると、私の環境ではphpDocumentorが古いsymfony/consoleに依存していました。

PowerShell
> composer global why symfony/console
Changed current directory to C:/Users/Owner/AppData/Roaming/Composer
cilex/console-service-provider  1.0.0   requires  symfony/console (~2.1)
laravel/installer               v1.4.1  requires  symfony/console (~2.3|~3.0)
phpdocumentor/phpdocumentor     v2.9.0  requires  symfony/console (~2.3)

古いLaravelインストーラとphpDocumentorを削除すると、最新版のLaravelインストーラを導入できました。
しかし、私としてはphpDocumentorはグローバルで使いたいので、Laravelインストーラの方を諦めることにしました。