10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel Sailを利用したubuntuでのローカル環境構築

Last updated at Posted at 2022-03-12

はじめに

自己学習用にLaravelを使ったCRUD処理のあるアプリ作成のため、ローカルの環境構築してみました。今回は公式ドキュメントに記載のある、Laravel Sailを利用してみました。その際の作業ログ的な記事となります。

環境

  • Windows11
  • WSL2
  • ubuntu
  • Docker Desctop

参考にした記事

ありがとうございます!

Laravel Sailとは

公式ドキュメントより

LaravelはDockerを利用する、Laravelプロジェクトを実行できる組み込みソルーションであるSailを提供しています。

Laravel Sailは、LaravelのデフォルトのDocker構成と、操作するための軽量のコマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するために良い出発点を提供しています。

公式ドキュメントということで安心感がありますし、簡単そうな気がします、、、!

Laravelプロジェクトを作成する

ターミナル(ubuntu)で以下のコマンドを実行します。

 curl -s https://laravel.build/example-app | bash

※example.appの部分は任意のプロジェクト(ディレクトリ)名にできます。
少し時間がかかります。

Laravel Sailを起動する

プロジェクト作成後、作成したディレクトリに移動します。

cd example-app

その後Laravel Sailを起動します。

./vendor/bin/sail up

初回は数分かかります。
構築完了後http://localhostを確認するとLaravel起動画面が確認できました!

おまけ

Laravel Sailを起動するコマンドのエイリアスを登録する

エイリアスとは

エイリアス 【alias】:IT用語辞典より

エイリアスとは、偽名、別名、通称などの意味を持つ英単語。ITの分野では、ある対象や実体を、複数の異なるシンボルや識別子で同じように参照できるする仕組みを指す。別名

長いコマンドや複数のコマンドを省略したコマンドで同じように実行できるようにするもの、みたいです。

設定方法

vendor/bin/sailと入力する代わりに、sailと入力するだけでSailコマンドを実行できるように設定します。

まず、以下のコマンドを実行して.bashrcを開きます。

vi ~/.bashrc

.bashrcファイルに以下の内容を追加します。

.bashrc
# Laravel Sail Execute
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

vim コマンド集 :Qiita
↑vimのコマンド操作に慣れてないため、こちらの記事を参考にvimファイルを編集しました。

ubuntuを再起動し、作成したディレクトリに移動してからsail upと実行するとLaravel Sailが起動するようになりました。

データベースをMySQLからPostgresへ変更する

Laravel SailのデフォルトのデータベースはMySQLですが、今回はPostgresを使用したかったため、下記記事を参考にして変更しました。
Laravel8 を標準装備の Sail + Dockerで開発環境を作る際にMySQLを使わずPostgresに変更してみる
docker-compose.ymlと.envファイルの変更でできました!

SQLSTATE[08006] [7] could not translate host name "postgres" to address: Temporary failure in name resolution

.envのDB_HOSTをpostgresへ変更後、php artisan migrateをしたところ、上記のエラーが発生してしまいました。

解決策


Laravel SailでMySQLからPostgresに変更する方法
↑記事を参考に、sail artisan sail:install --with=pgsqlを実行し、下記のようにDocker-compose.ymlの修正を行いました。

pgsql:
        image: 'postgres:13'
        ports:
            - '${FORWARD_DB_PORT:-5432}:5432'
        environment:
            PGPASSWORD: '${DB_PASSWORD:-secret}'
            POSTGRES_DB: '${DB_DATABASE}'
            POSTGRES_USER: '${DB_USERNAME}'
            POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
        volumes:
            - 'sail-pgsql:/var/lib/postgresql/data'
        networks:
            - sail
        healthcheck:
            test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"]

これだけではマイグレーションできませんでした、、、。


.envのDB_HOSTをpgsqlへ変更しました。
※sailの場合、postgresではうまくいかないみたいです、、、

.env
DB_HOST=pgsql

マイグレーションできました!

MailHogを確認する

localhost:8025で確認できます!

(.envファイルを確認すると、MAIL_PORT=1025と記載があったので、localhost:1025を見てみましたが、このページは動作してませんとのことで焦りました)

おわりに

初めて自力で最初から環境構築できました!自分で調べながら作業することの積み重ねが大切だと感じました。これから今回構築した環境を使ってアプリ作りをし、また記事を書いていきたいと思います。

10
5
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
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?