【Laravel Sail】バージョン指定でLaravelをインストールし、MySQL・phpMyAdminを簡単に使う方法

2024.05.29

こんにちは、戸田です!

Laravel10を使うことがありインストールに迷ったのでブログ化します。

今回の環境

  • WSL2 (Ubuntu)
  • PHP v8.2
  • Composer v2.7.x
  • Laravel v10.x
  • Laravel sail

前提

WSL2、PHP、Composer、Dockerがインストールされていること

手順

Laravel10をインストール

まずはComposerでLaravel10をインストールします。 この場合"10.*"を任意のバージョンにすることもできます。

composer create-project laravel/laravel project-name --prefer-dist "10.*"

Laravel sailをインストール

cd project-name
php artisan sail:install

phpMyAdminの設定

Laravel sailをインストールした後に追加されたdocker-compose.ymlを編集します。

docker-compose.yml
services:
  Laravel.test: ~~~
  mysql: ~~~
# ここから下を追加
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
      - mysql:mysql
    ports:
      - 8888:80
    environment:
      MYSQL_USERNAME: '${DB_USERNAME}'
      MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
      PMA_HOST: mysql
    networks:
      - sail

起動してみる

./vendor/bin/sail up

以下のようにDockerが動いていれば起動成功です!

Docker Desktopの場合 Docker Desktop画面

コマンドでの確認の場合

docker  ps

//出力
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                  PORTS
                                       NAMES
405566594e7e   phpmyadmin/phpmyadmin    "/docker-entrypoint.…"   45 hours ago   Up 45 hours             0.0.0.0:8888->80/tcp                                   project-name-phpmyadmin-1
61dbc56803d5   sail-8.3/app             "start-container"        45 hours ago   Up 45 hours             0.0.0.0:80->80/tcp, 0.0.0.0:5173->5173/tcp, 8000/tcp   project-name-laravel.test-1
abd512c0f195   mysql/mysql-server:8.0   "/entrypoint.sh mysq…"   45 hours ago   Up 45 hours (healthy)   0.0.0.0:3306->3306/tcp, 33060-33061/tcp                project-name-mysql-1

ブラウザでlocalhostにアクセスするとLaravelのwelcomeページが表示されるはずです。

ちなみに自分はWSLにインストールしていたApacheと競合してうまく表示されなかったのでApacheを削除したことで解決しました。

MySQLをコマンドで操作する

自分はphpMyAdminをインストールする前にmysqlコマンドでデータベースを確認しようとして詰まりました。 原因は環境を作る前にWSLにMySQLをインストールしていたことです。そのためmysqlコマンドをターミナルから実行してもうまく動きませんでした。 対処方法として、Dockerコンテナ内でコマンドを実行する方法で解決しました。

以下のコマンドをWSL上のプロジェクトのディレクトリで実行します。

docker exec -it [プロジェクト名]-mysql-1 mysql -u [user名] -p

これでMySQLに接続できます!今回のブログではphpMyAdminをインストールしているのでそちらで動かすのが楽だとは思います。

参考記事

Laravel Sailプロジェクトをバージョン指定して作成する

[Docker] docker composeで構築したMySQLに接続する3つの方法