LaravelをDockerを使ってインストール(インストール編)

Dockerの起動

インストールしているDocker Desktopを起動します。起動には少し時間がかかります。Dockerが起動すると右下のタスクトレイにクジラのロゴが表示され、マウスオーバーするとDocker Runningと表示されればDockerが起動しています。

VS Codeでフォルダを開く

VS Codeで先ほど作成したファイル群を開きます。dockerフォルダの一つ上のフォルダを選択します。開くと以下のような状態になります。設定によってはデフォルトで表示されるタブが表示されている場合もあります。筆者はlaravel11というフォルダを作り、それをVS Codeで開いています。

Terminalを開く

VS Codeの上部のメニューから「Terminal」を選択します。出てきたメニューから「New Terminal」を選択すると画面下部にTerminalが出現します。

コマンドでコンテナの立ち上げ

起動したTerminalに以下のコマンドを実行して、Dockerイメージをビルドします。

docker compose build

コマンドを実行するとイメージがビルドされます。

次に、以下のコマンドでDockerイメージを起動します。

docker compose up -d

コマンドを実行するとコンテナが実行されます。mailhog、php、mysql、phpmyadmin、nginxのコンテナが起動されているか確認してください。

次に、以下のコマンドでPHPコンテナにログインします。

docker compose exec php bash

コマンドを実行するとコンテナに入ることができます。

Laravelのプロジェクトファイルの作成

PHPコンテナに入ることができたら、Laravelのプロジェクトファイルをコマンドで作成します。

composer create-project laravel/laravel:^11 .

このコマンドはComposerを利用してLaravelのプロジェクトを作るコマンドです。「laravel/laravel:^11」は、Laravelのバージョン11をインストールすることを指定しています。インストールするバージョンを変更する場合は、ここを変更します。

このコマンドでは、ソースコードはsrcフォルダにインストールされます。「.」の代わりに任意の名前を付けることができ、その場合は任意の名前のフォルダにLaravelのソースコードがインストールされます。

次に、以下のコマンドで、Laravel Breezeをインストールします。Laravel Breezeはユーザー認証に必要な機能を追加してくれます。

composer require laravel/breeze --dev

php artisan breeze:install blade

上のコマンドでLaravel Breezeをインストールし、下のコマンドでLaravel BreezeのBlade版をセットアップします。上のコマンドの 「–dev」は開発環境用としてインストールすることを指定しています。Laravel BreezeはBlade版以外にも、フロントエンドのフレームワークである、Vue.jsやReactをオプションとして指定できるほか、Inertia.jsやダークモードに対応することもできます。

NPMのインストール

Laravel Breezeでは、NPMというソフトウェアを使用します。これは、フロントエンドの依存関係を管理するものです。NPMはNode.jsをダウンロードすると一緒についてきます。以下のURLから、「Download Node.js(LTS)」をクリックしてインストールしてください。

Node.js公式サイト

NPMの実行

新たにVS CodeのTerminalを開いて、以下のコマンドでカレントディレクトリを移動します。

cd ./src

これで、カレントディレクトリをsrcフォルダにできました。次に、以下のコマンドを実行します。

npm install

npm run dev

上のコマンドで必要なパッケージがインストールされ、下のコマンドでフロントエンドのサーバーが立ち上がります。

envファイルの編集

次に、srcファイルの中の.envファイルを開きます。このファイルの中の以下のコードを書き換えます。.envファイルはLaravelの必要な設定項目を設定するファイルです。機密情報も扱う場合があるため、外部に流出しないようにしてください。

# 書き換え前

DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

# 書き換え後
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=laravel_pass

MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

DBから始まる部分はデータベースの設定です。データベース名、ユーザー名、パスワードはcompose.ymlで定義したものに合わせます。MAILから始まる部分はLaravelからメールを送信したときにMailhogで確認できるように設定しています。

マイグレーション

現在はデータベースの中に何も入っていません。docker compose exec php bashを実行しているターミナルで以下のコマンドを実行します。

php artisan migrate

このコマンドはLaravelであらかじめ設定されているデータベースに登録する情報を登録するコマンドです。これから先、自分でデータベースの構造を構築した場合はこのコマンドを使用し、データベースを更新していきます。

ファイルの権限を設定

このままでは、Webサイトにアクセスしようとしてもエラーが出てきます。下記のコマンドで、PHPサーバー内のファイルの権限を変更します。docker compose exec php bashを実行しているターミナルで以下のコマンドを実行します。

chmod -R 777 storage

chmod -R 777 bootstrap/cache

このコマンドは指定したフォルダに含まれるすべてのファイルの権限を読み込み、書き込み、実行のすべてを許可するコマンドです。これにより、PHPサーバーがこれらのファイルを自由に読み書き、実行ができます。

Webサイトにアクセス

以上でLaravelの設定が終わりました。以下のアドレスでWebサイトにアクセスしてみましょう。

http://localhost

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

これでLaravelのインストールは終了いたしました。次回からはインストールしたLaravelのフォルダ構成などを見ていきます。

コメントを残す

CAPTCHA