JINMUSOFTWARE

Laravelをインストールする方法3選

Laravelのlogoです。

Laravelをインストールする方法を簡単に紹介します。

環境は、Windows11です。

コマンドをいっぱい叩くので、windowsユーザには少し難しいかもしれませんね。それでは、紹介していきます。

Laravelは、2023年2月14日にversion 10 になりました。皆さん楽しんでくださいね。

composerを使用してLaravelをインストールする方法

composer-logo

composerは、PHPで依存関係を管理するためのツールです。

インストール手順

  1. PHPをインストール
  2. composerをインストール
  3. Laravelをインストールするコマンドを実行
    • composer create-project laravel/laravel app-name

PHPのインストール

PHPを準備する方法はいくつか存在します。

  • 公式PHPサイトよりDownloadする。PHP
  • XAMPPで準備する。XAMPP
  • その他のPHP開発環境

私は、PHPとMySQLの学習の為、XAMPPを選択しました。XAMPPは、もっとも有名であろうPHPの開発環境です。

インストールが完了したら、PHPの動作確認としてコマンドラインからバージョン確認してみましょう。

> php -v

composerのインストール

composerは、PHPで依存関係を管理するためのツールです。

composer公式サイトよりDownloadして、インストールしてください。composer

composerのバージョンを確認してみましょう。

> composer -V

バージョンを確認するオプションは、「-v」「-V」と、各コマンドによって、大文字小文字の違いがありますので注意しましょう。

必要であれば、composer自体をupdateしておきましょう。

> composer self-update

Laravelのインストール

以下のコマンドを実行してください。app-nameは自由です。

> composer create-project laravel/laravel app-name

app-nameディレクトリにLaravelのフォルダ構成が準備され、必要なライブラリが保存されます。

Laravelが準備されたので動作確認をしてみましょう。

  1. cd app-name
  2. php artisan serve
  3. ブラウザで 120.0.0.1:800 にアクセスする
Laravelの動作テスト
Laravelの動作テスト

おしゃれな感じですね。

LaravelインストーラでLaravelをインストールする方法

Laravel-Installer自体はcomposerでインストールします

インストール手順

  1. composerでLaravel-Installerをインストールする
    • composer global require laravel/installer
  2. Laravelをインストールするコマンドを実行
    • laravel new app-name

Laravelが準備されたので動作確認をしてみましょう。composerでインストールしたときと同じ手順になります。

  1. cd app-name
  2. php artisan serve
  3. ブラウザで 120.0.0.1:800 にアクセスする
Laravelの動作テスト
Laravelの動作テスト

と、composerの時と同じように表示されているはずです。

Laravel-sailをインストールする方法

docker-logo

sailはDockerのImageで提供されています。

このImageには、Laravel、MySQL、Mailpitなどが入っています。

DockerはLinux上でしか動作しないので、windowsの場合はWSL2が必要になります。

  1. Power Shellをインストールする
  2. WSL2をインストールする
  3. Docker Desktopをインストールする
  4. Laravelをインストールするコマンドを実行
    • curl -s https://laravel.build/app-name | bash

PowerShellのインストール

Windows への PowerShell のインストール – Microsoft

PowerShellのバージョンを確認してみましょう。そもそも起動時にバージョン表示されますけどね。

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      7.3.3
PSEdition                      Core
GitCommitId                    7.3.3
OS                             Microsoft Windows 10.0.22621
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

補足

私の環境では、PowerShell version 5.1 が導入されていました。これを起動するたび「新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows」と、表示されていましたので、PowerShell version 7 をインストールしました。

WSL2のインストール

コマンドラインより次のコマンドを実行する

> wsl --install

デフォルトでUbuntuがインストールされます

Microsoft Storeより他のLinuxディストリビューションをインストール可能です。

バージョンを確認してみましょう。

> wsl --status
WSL1ありますよ
WSL1ありますよ

では、Ubuntuを起動してみましょう。

PowerShellのタブ横にある下向き矢印をクリックしてメニューを出します。

Ubuntuの起動
Ubuntuの起動

私の環境では、「Ubuntu 22.04.2 LTS」を選択します。

Ubuntuの起動
Ubuntuの起動

WSL2上でUbuntuが起動できましたね。

Ubuntuが起動しませんか?

起動しない場合、「windowsの機能の有効化または無効化」の項目を確認する必要があります。

windowsの機能
windowsの機能
  • 「仮想マシンプラットフォーム」が有効になっていること
  • 「Linux用Windowsサブシステム」も必要(恐らく)
  • 「Hyper-V」は不要

「Linux用Windowsサブシステム」をOffにしても、WSL2上のUbuntu、Dockerは動作しました。ちょっとびっくり。これはWSL1を示しているようで、WSL2があればいいのかな?

補足)試しに、いくつかの機能をOFFにしてみます。

「仮想マシンプラットフォーム」が無効の場合。wsl2が動作しない。

Ubuntu起動しない
Ubuntu起動しない

「Linux用Windowsサブシステム」が無効の場合。エラーではないがWSL1が動作しない旨を示しているようだ。

WSL1が無い場合
WSL1が無い場合

補足

私の環境では、中途半端にWSLがインストールされていたようで、後述するDockerDesktopが起動できませんでした。たしか、画面に「wsl –update」を実行しろと表示されていた気がします。このコマンドを実行した後、DockerDesktopが正常に起動できるようになりました。

Docker Desktopのインストール

windows上で使用するDockerは、DockerDesktopと呼ばれます。

さて、公式サイトよりダウンロードしてインストールしましょう。

docker

Laravel-sailをインストールする

DockerDesktopを起動して、Ubuntu上で次のコマンドを実行してください。

> curl -s https://laravel.build/app-name | bash

動作確認をしてみましょう。

cd app-name
./vendor/bin/sail up
http://localhost/ にアクセス  ...Ctrl+C で終了します

実行時にパーミッションのエラーが発生する場合は、次のセクションをお読みください。

Laravel-sailでパーミッションエラーの回避方法

実行時のパーミッションエラーの回避方法を説明します

私の環境でsailで構築したLaravelではパーミッションエラーが多発してしまいます。

Ubuntuに「root」でログインしていますが、WSL2上でこれが普通なのかちょっとおかしいのかわかりませんがこのへんが原因です。

回避する方法を2つ見つけましたので説明いたします。

①エラーが発生したディレクトリのパーミッションを緩くする

例えばsail環境でLaravelを起動した場合以下のエラーが発生します。

The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened
in append mode: Failed to open stream: Permission denied The exception occurred
while attempting to log: The stream or file

以上のように「storage」ディレクトリ配下に.logファイルを作成する権限がありませんとのことです。

では、ディレクトリ権限を変更します。

chmod -R 777 ./storage/

ガバガバ設定ですが、これで動作します。

この後は、パーミッションエラーが発生する度にディレクトリ権限を緩和していきます。

以下の様にファイルを生成するコマンドの度エラーが発生します

  • sail test
  • sail artisan sail:publish
  • sail artisan make:controller SampleController
  • sail artisan make:migration create_tests_table

Appディレクトリごと全てのファイルの権限を緩和もできますが、逆にmysqlの操作あたりで、ファイルの権限が緩すぎますよとエラーが発生しますので注意です。

②appディレクトリの所有者を変更する

エラーの原因は、appディレクトリの所有者が「root」であり、実行時のユーザが「sail」で操作権限が無いことが原因と思っています。(linuxは詳しくない)

所有者をユーザsailに変更します。appディレクトリに移動後以下のコマンドを実行

sail root-shell
chown sail:sail -R .
exit

sailというユーザはWSL側にはおらず、docker-container側のsail環境にいます。

なので、一度container側にrootでログインして、所有者を変更しています。

WSL側に戻ったら、ls -la などでファイル所有者を確認してみましょう。

*誤記訂正 2023.4.13
chmod sail:sail -R .

chown sail:sail -R .

参考資料

The PHP Framework for Web Artisanshttps://laravel.com/

Laravel Documenthttps://laravel.com/docs

Laravel関連パッケージ最新日本語ドキュメントhttps://readouble.com/laravel/

Laravel Versionshttps://laravelversions.com/ja

関連記事

Laravel Sail permission denied の解決方法