親記事
Laravelをインストールする
「Laravelインストーラ」ではなく、Composerのcreate-project
コマンドでインストールします。
readouble.com: Laravelのインストール
下記を実行すると、現在の場所に5.7
というフォルダが作られ、その中にLaravelがインストールされます。
指定するフォルダ名は自由です。
> composer create-project --prefer-dist laravel/laravel 5.7
動作確認をする
下記を実行し、ブラウザでhttp://127.0.0.1:8000
へアクセスしてください。
> php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
上のコマンドの内部では、PHPの組み込みサーバーを使っています。
PHP公式ドキュメント: ビルトインウェブサーバー
XAMPPのApacheでページを処理する正式な方法は、次の章で紹介します。
(余談) Laravelインストーラを使う場合
公式ドキュメントではLaravelインストーラを利用する方法が最初に紹介されており、私も以前はインストーラを使っていました。
しかし、依存しているsymfony/console
の要求バージョンが、他のパッケージ(phpDocumentor2.9)での要求バージョンと異なり、どちらか一方を削除しなければならないため、私はLaravelインストーラの方を削除しました。
通常の導入方法
# 新規に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にしろと警告されます。
> 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
に依存していました。
> 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インストーラの方を諦めることにしました。