実行環境
OS | macOS Ventura 13.5 |
---|---|
shell | zsh 5.8.1 (x86_64-apple-darwin21.0) |
middleware | Docker(24.0.6) |
framework | laravel(10.20.0) |
vite(4.4.9) |
検証日: 2023/09/25
本記事で得られる結果
- 日本向けの最低限の設定を行った Laravel10 動作環境
- Laravel(10.20.0)
- PHP(8.2.9)
- MySQL(8.0.34)
前提
- Dockerインストール済み
手順
Laravel
-
公式を参照 (macOS向け)
-
インストール
curl -s "https://laravel.build/example-app" | bash
example-app
はプロジェクト名なので変更可能です -
実行確認
cd example-app ./vender/bin/sail up
Control + C
で終了- http://localhost からアクセス
-
エイリアス設定
vim ~/.zshrc
.zshrc+ alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
タイムゾーンや文字コードの変更
-
Docker をカスタマイズ可能にする
sail artisan sail:publish
-
コンテナのタイムゾーン設定
docker/8.2/Dockerfile- ENV TZ=UTC + ENV TZ='Asia/Tokyo'
-
MySQLの文字コード設定
日本語を利用できるようにするために初期設定ファイルを作成する
touch docker/8.2/my.cnf vim docker/8.2/my.cnf
docker/8.2/my.cnf+ [mysqld] + character-set-server = utf8mb4 + collation-server = utf8mb4_bin + + [client] + default-character-set = utf8mb4
docker-compose.ymlへパスを追加
docker-compose.ymlmysql: image: 'mysql/mysql-server:8.0' 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: 1 volumes: - 'sail-mysql:/var/lib/mysql' + - './docker/8.2/my.cnf:/etc/my.cnf' - './docker/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
docker/8.2/Dockerfile
を利用する想定だがアップデート次第では変更される場合があるので読み替えてください
日本語ローカライズ
-
設定ファイルの変更
config/app.php- 'locale' => 'en', + 'locale' => 'ja', - 'fallback_locale' => 'en', + 'fallback_locale' => 'ja', - 'faker_locale' => 'en_US', + 'faker_locale' => 'ja_JP',
-
日本語ファイルの追加
sail artisan lang:publish
sail composer require laravel-lang/lang sail artisan lang:add ja
laravel-lang/lang:^13.2
が入る想定
13.2
より低い場合にlang:add
ができない場合がある -
Laravel のタイムゾーン設定
config/app.php- 'timezone' => 'UTC', + 'timezone' => 'Asia/Tokyo',
動作確認
sail build --no-cache
sail up -d
- http://localhost からアクセス
備考
-
ローカライズの注意
# https://laravel-lang.com/installation/ より sail composer require laravel-lang/common # laravel-lang/lang が先に入っていると競合する場合がある
-
最初からLaravelインストールするときにロケール指定できると楽ですね
例えば- curl -s "https://laravel.build/example-app" | bash + curl -s "https://laravel.build/example-app?lang=ja" | bash