Laravel SailでphpMyAdminを使えるようにする方法を分かりやすく解説

Laravel Sailで環境構築!

今回はLaravel Sail環境にphpMyAdminを使えるようにします。

Laravel Sailは、デフォルトでMySQLが使えるようになっています。ただそのままでは、視覚的にテーブルを見たりすることができません。

不便なので、phpMyAdminを使えるようにして、ブラウザ上でデータベースを確認できるようにしておきます。

動画編もあります↓↓↓

Laravel Sailで開発環境を構築してみよう【Windows・Mac対応】後編 phpMyAmin、 VS Code設定、Laravel Breezeインストール

Laravel SailでphpMyAdminを使えるようにする方法を分かりやすく解説

こちらの記事で解説しているとおり、Docker環境では、作成したアプリケーションを実行するのに必要なMySQLやMailHog, Redisといったツールを、各コンテナで動かします。

各プロジェクトで使用するコンテナ情報は、プロジェクト直下のdocker-compose.ymlファイルの中に入っています。今回は、このdocker-compose.ymlを編集して、phpMyAdminを使えるようにしていきます。

手順を説明しますね。

① Laravel Sailをとめておく

まずはUbuntu上で ./vendor/bin/sail stop を実行し、起動しているLaravel Sailを止めておきます。

エイリアス設定を変更した場合には、 sail stop と入れます。

Junko
Junko

エイリアスの設定方法は下記記事で説明しています。

② docker-compose.ymlファイルを編集

次にプロジェクトの中のdocker-compose.ymlファイルを開きます。

ファイルの中に、50行目あたり(!バージョンや環境によって、行数は違う可能性があります)、mysqlの設定の後に、phpMyAdmin用の設定を加えます。インデントの位置や入れる場所によってエラーになるので、気を付けてください。

【追加したときのファイル(赤枠が追加部分です)】

「services.phpmyadmin.environment must be a mapping」と出た場合、スペースやタグが正しく入っているか確認してください。PMA_HOST: mysql については、コロン(:)のあとにスペースが入るようにしましょう。

「services.phpmyadmin.links.0 must be a string」と出た場合、mysql:mysqlについて、コロン(:)のあとにスペースがないようにしましょう。

 

ややこしいのですが、ご留意ください。

不安な場合は、上記のコードをそのまま貼り付けてくださいね。コード部分をダブルクリックすると、コピー可能になります。

 

③.envの編集

プロジェクトフォルダ内の.envファイルを開きます。データベースの設定を確認しておきます。

Junko
Junko

デフォルトで下記のようになっています。

DB_USERNAMEとDB_PASSWORDは、後でログインする時に必要な情報です。

なおデフォルトのDB_DATABASEは、Laravel10ではプロジェクト名でしたが、Laravel11では「Laravel」となっています。

④Laravel Sailの起動

ファイルを保存後、再びUbuntuに戻り、 ./vendor/bin/sail up -d を実行して、Laravel Sailを起動します。

これによって、docker-compose.ymlファイルをもとに、プロジェクトが起動します。初回は下記のような画面になります。

pulled とありますが、これは、イメージをインストールしているためです。image(イメージ)と聞くと画像を連想してしまうかもしれませんが、イメージは、画像ではありません。

イメージとは、正確に言うと、コンテナを起動するための元となるファイルシステムと、実行するプログラムをまとめたものです。

が、説明がややこしくなってしまうので、「コンテナの中に入れる元データのようなもの」と考えておいてください。プロジェクト内のコンテナは、このイメージを使って作成されます。

なお2回目以降は、すでにイメージがあるため、起動はより早くなります。

⑤ ブラウザでphpMyAdminを確認する

ブラウザで http://localhost:8080/ を表示すると、次のようにphpMyAdminが出てきます。

ユーザー名とパスワードをいれて、ログインしてみましょう。デフォルトでは、ユーザ名はsail, パスワードは passwordです。

エラー対策:MySQL サーバにログインできません と出る場合

sail downでsailをとめた後、.envファイルのDB_HOST=mysqlを DB_HOST=localhostに変更してください。その後、再度 ./vendor/bin/sail up -d でsailを起動してください。

さいごに

ここまででLaravel Sailを使った開発環境ができました。

なおユーザーインターフェースやエラーメッセージの日本語化や、時刻等の初期設定の変更など、行っておいた方が良い設定があります。

下記の記事の「Laravelの初期設定をする」を参考にすすめてください。

このあとの記事では、Laravel Breezeを使って認証機能(ユーザー登録、ログイン画面)をつけていきます。Laravel Viteの設定方法などもご紹介していきます。

Laravel Sailで環境構築! Laravel入門講座

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!

コメント

  1. くまお より:

    MySQL サーバにログインできない場合に上記を試しても、ログインできない方はどうやって解決しましたか?

  2. くまお より:

    解決いたしました。
    networks:
    – sail
    が抜けていたことが原因でした。

  3. 吉田 より:

    私もPhpMyadminにログインできません
    DB_HOST=localhostに変更しました

    mysqli::real_connect(): (HY000/1045): Access denied for user ‘root’@’172.18.0.7’ (using password: YES)

    因みに書籍も買いました

    • Junko Junko より:

      こちら、phpMyAdminがMySQLデータベースに接続しようとした際に、ユーザー名やパスワードが間違っているか、あるいはユーザーに対してリモートからの接続権限が設定されていないことを示しています。
      詳細な状況が分からないと何ともいえませんが、docker-compose.ymlでスペルミスやインデントミスをされるケースがわりとあったりします。今一度設定を見直してみてください。
      変更を加えたら、再度sailを起動しなおしてくださいね。

タイトルとURLをコピーしました