0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel SailでphpMyAdminを使えるようにしてみた

Last updated at Posted at 2024-10-05

前提

  • Laravel Version11 with Sail
  • Docker for Windows Desktop
  • WSL2 + Ubuntu

概要

Laravelのドキュメントに書かれているそのままの方法で開発環境を立ち上げてもphpMyAdminが使えず、MySQL Workbenchとか使ってみたけど、使い慣れたphpMyAdminを使えるようにしてみた。

参考

  1. 【PHP】Docker環境にphpMyadminを導入する
  2. phpmyadmin - Official Image | Docker Hub

参考1.の方法で試して見た

docker-compose.ymlに以下の内容を追加してみました。

docker-compose.yml(一部抜粋)
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=db
      - PMA_USER=db_user
      - PMA_PASSWORD=db_password
    ports:
      - "8080:80"
    volumes:
      - ./docker/phpmyadmin/sessions:/sessions

だけど、db名やホスト名やアカウント、パスワードは変える必要がありそうだったので

docker-compose.yml(一部抜粋)
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - mysql
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=mysql
      - PMA_USER=sail
      - PMA_PASSWORD=password
    ports:
      - "8080:80"
    volumes:
      - ./docker/phpmyadmin/sessions:/sessions

としてみて

コマンド
./vendor/bin/sail up --build

立上げ直してみたけど、phpMyAdminの画面を開くと接続エラーになった。

で、参考2.に書かれていた内容を張り付けてみた。

docker-compose.yml(一部抜粋)
  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      - PMA_ARBITRARY=1

で、再度sailを起動しなおして

コマンド
./vendor/bin/sail up --build

phpMyAdminの画面を開いてパスワードなどを入力してみるが駄目だった。

なので、先ずは、Dockerの画面でMySQLのコンソールからMySQLにログインしてみた。

MySQLコンソールでの実行コマンド
mysql -h mysql -P 3306 -u sail -p

パスワードを入力し、問題なく接続できた。

そこで気づいたのが、MySQLなどはSailの環境下で動いているということ。
なので、

docker-compose.yml(一部抜粋)
    phpmyadmin:
      image: phpmyadmin
      restart: always
      ports:
        - 8080:80
      environment:
        - PMA_ARBITRARY=1
      networks:
        - sail

として

コマンド
./vendor/bin/sail up --build

sailを再起動して、再度phpMyAdminの画面を開きホスト名やID/Passを入力してみたところ接続できた。
これだと、毎回ID/Passなど入れる手間があるので、

docker-compose.yml(一部抜粋)
    phpmyadmin:
      image: phpmyadmin
      restart: always
      ports:
        - 8080:80
      environment:
        - PMA_ARBITRARY=1
        - PMA_HOSTS=mysql
        - PMA_USER=sail
        - PMA_PASSWORD=password
      networks:
        - sail

とした。

で、参考1.の方法についても

docker-compose.yml(一部抜粋)
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - mysql
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=mysql
      - PMA_USER=sail
      - PMA_PASSWORD=password
    ports:
      - "8080:80"
    volumes:
      - ./docker/phpmyadmin/sessions:/sessions
    networks:
      - sail

で、接続できた。

Sailで動かしているなら、これが必要でした。

docker-compose.yml(一部抜粋)
    networks:
      - sail
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?