自分だけのクイズを作成しよう - Quipha
スポンサーリンク

【Laravel Sail】phpMyAdminをインストール

Laravel

当サイトではアフィリエイト広告を利用しています。

スポンサーリンク

はじめに

別な記事でLaravel Sailで環境を構築する手順を解説しました。

Windows
Mac

Laravel Sailには、phpMyAdminがインストールされていませんので、今回は使えるようにしてみました。

使用するバージョンなど
  • Windows 11 or macOS Monterey (M1)
  • Laravel 8 or 9 or 10
  • phpMyAdmin 5.2.1

2022/09/27 WindowsとMacを使い、最新バージョンで確認しました。
2023/03/11 Laravel10で確認しました。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

スポンサーリンク

【紹介】個人開発

私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。

また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます

是非多くの方に読んでいただき、Laravelの開発に少しでもお役に立てたら幸いです。

VS Codeの用意

VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。

設定方法は以下を参考にしてください。

スポンサーリンク

phpMyAdminのインストール

docker-compose.yml修正

すでにLaravel Sailで環境構築が済んでいる状態から始めます。

Sailの中身はDockerですので、Laravelプロジェクト直下にあるdocker-compose.ymlを修正します。
phpMyAdminに関する情報を、servicesブロック内に追記します。

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
...
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            #PMA_USER: "${DB_USERNAME}"
            #PMA_PASSWORD: "${DB_PASSWORD}"
            PMA_HOST: mysql
        networks:
            - sail
...

mariadbの場合は、「mysql」という記述を「mariadb」に変更します。

以下のコマンドでSailを起動します。

sail up

以下のURLにアクセスします。

http://localhost:8080/

phpMyAdminのログイン画面が開きました。

.envに記載している、DBのユーザとパスワードでログインできます。

DB_USERNAME=sail
DB_PASSWORD=password

Laravelのデータベースやテーブルにアクセスすることができました。

ログイン画面を出さない方法

開発環境(ローカルPC)の場合は、毎回phpMyAdminにログインを行うのは面倒です。

先ほどのdocker-compose.ymlの、以下のコメントアウトを解除すれば、ログイン画面が表示されず、phpMyAdminへ自動でログインできます。

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
...
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            PMA_USER: "${DB_USERNAME}"
            PMA_PASSWORD: "${DB_PASSWORD}"
            PMA_HOST: mysql
        networks:
            - sail
...

この設定は、必ず開発環境のみとしてください。
Sailに限らず、phpMyAdminコンテナを開発環境以外で使用する場合は、この設定は適切ではありませんのでご注意ください。

余談ですが、「PMA_ARBITRARY: 1」を指定すると、ログイン画面で「サーバ」を指定できるようになります。(今回の場合は「mysql」)

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
...
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            PMA_ARBITRARY: 1
        networks:
            - sail
...

MariaDBの場合

MariaDBでも使用することができます。
詳しくは以下の記事をご覧ください。

さいごに

SailはDockerで動いていますので、環境の構築がとても楽にできます。
開発にはphpMyAdminは必須だと思いますが、インストールしましょう。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

  1. ポメ より:

    いつも参考にさせて頂いております。

    一点質問がありまして、こちらの記事を参考に、laravel sail環境を初めて構築しておりますが、phpMyAdminをインストールしようとしたら、ログイン画面の表示まではされましたが、下記のエラーが出ました。

    mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo for mysql failed: Temporary failure in name resolution

    バージョン
    php:8.1(バージョンを下げました)
    mysql:8.0(5.7でもやりましたが同様です)
    laravel:10

    最初に構築した時には、ログインが出来ました。
    ただ、mysqlのバージョンを下げ忘れていて、5.7に変更したらエラーが出るようになりまして、その後、0からsailを構築し直して8.0で試したり、.envファイルのDB_HOSTをlocalhostに変えてみたりと色々と試したのですが、このエラーが解消せず進めない状態になっております。

    何か解消方法等ご存知でしょうか。

    • ポメ より:

      申し訳ございません。

      こちら自己解決しました。

      どうやらmysqlのバージョンを変えた後に、docker側のvolumeやimage等を削除して再度立ち上げないと上手く動作しないようでした。

      コンテナ上でmysqlがerrorになっていて、そちら調べて解消したらログイン出来ました。

      大変お騒がせしました。