はじめに
別な記事でLaravel Sailで環境を構築する手順を解説しました。
Laravel Sailには、phpMyAdminがインストールされていませんので、今回は使えるようにしてみました。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
【紹介】個人開発
私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。
また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
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
...
以下のコマンドで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
...
余談ですが、「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について解説している記事がありますのでご覧ください。
コメント
いつも参考にさせて頂いております。
一点質問がありまして、こちらの記事を参考に、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になっていて、そちら調べて解消したらログイン出来ました。
大変お騒がせしました。