はじめに
今回は、Laravel SailでMariaDBを使う方法をまとめました。
標準ではMySQLが採用されていますが、変更することができます。
例えば、最新のエックスサーバーでもMariaDBが採用されています。
デプロイする環境に合わせて、DBを選択しましょう。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
【紹介】個人開発
私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。
また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
開発環境の準備
今回は、Laravel Sailを使って環境の構築を行いました。
以下の記事を参考にしてください。
VS Codeの用意
VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。
設定方法は以下を参考にしてください。
新規プロジェクト作成
Laravel Sailを新規でプロジェクトを作成する場合、以下のコマンドを実行します。
デフォルトでは、mysql、redis、meilisearch、mailpit、seleniumが設定されます。
curl -s https://laravel.build/example-app | bash
プロジェクト作成時に、サービスを選択することができます。
今回は、MariaDBを指定してプロジェクトを作成します。
curl -s "https://laravel.build/example-app?with=mariadb" | bash
詳しくは公式サイトをご覧ください。
docker-compose.ymlを確認しましょう。
MariaDBが追加されています。
...
mariadb:
image: 'mariadb:10'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sail-mariadb:/var/lib/mysql'
- './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
networks:
- sail
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-p${DB_PASSWORD}'
retries: 3
timeout: 5s
...
volumes:
sail-mariadb:
driver: local
サービスを指定してプロジェクトを作成した場合は、既に使えるようになっています。
.envファイルを確認しましょう。
DB_HOSTにmariadbが指定されています。
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password
以下のコマンドでテーブルを作成し、使用することができます。
sail artisan migrate
既存プロジェクトに追加
既にSailでプロジェクトを作成しており、MySQLを指定している場合でも変更できます。
sail php artisan sail:install
コンテナ環境に何を構築するか聞かれます。
今回はmariadbだけインストールしたいので、2を入力しEnterで進めました。
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailpit
[8] selenium
[9] soketi
もし複数指定する場合は、カンマ区切りで入力します。
ちなみにSailでプロジェクトを作成した場合は、デフォルトで以下の番号のサービスが追加されています。
0,3,5,7,8
以下のメッセージが表示され、環境の構築はすぐに終わります。
docker-compose.ymlが先ほどと同様になります。
Sail scaffolding installed successfully.
設定ファイルは書き変わりませんので、.evnを確認します。
デフォルトでは以下のようになっています。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password
ホストの指定をMariaDBに変更します。
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password
Sailを再起動しましょう。
サービスの変更を行うと、Sailの停止時にエラーになる場合があります。
その場合は、一度Dockerからコンテナを停止しました。
sail down
sail up -d
phpMyAdminの導入
phpMyAdminから見れるようにしましょう。
MariaDBでも使用することができます。
詳しくは以下の記事を参考にしてください。
docker-compose.ymlを修正します。
phpMyAdminに関する情報を、servicesブロック内に追記します。
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mariadb:mariadb
ports:
- 8080:80
environment:
#PMA_USER: "${DB_USERNAME}"
#PMA_PASSWORD: "${DB_PASSWORD}"
PMA_HOST: mariadb
networks:
- sail
phpMyAdmin上から、MariaDBが指定されているのが確認できました。
その他
初学者へ
Laravelを初めて触る方へ向け、手順やアドバイスをまとめました。
外部サーバーへ公開
作成したアプリは公開して使ってもらいましょう!
Laravelアプリケーションを外部公開する方法をまとめました。
脆弱性対策
脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があり大変危険です。
作成したアプリケーションは、脆弱性対策も意識しましょう。
GitHubと連携
GitHubと連携する方法を解説しました。
プロジェクトの管理はGitHubを活用しましょう。
GitHub Copilot
GitHub Copilotを導入し、AIにコーディングをサポートしてもらうこともできます。
さいごに
今回は、Laravel SailでMariaDBを使う方法をまとめました。
他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。
コメント