# Laravel Docker環境 Nginx + PHP + Laravel + MySQL + PhpMyAdmin + MailHog を使ったDocker開発環境です。 ## 構成 - **Nginx**: Webサーバー(ポート: 9700) - **PHP 8.2**: PHP-FPM + Composer + Node.js - **MySQL 8.0**: データベース(ポート: 9702) - **PhpMyAdmin**: DB管理ツール(ポート: 9701) - **MailHog**: メールテストツール(SMTP: 1025, Web UI: 9725) ## ディレクトリ構成 ``` . ├── docker/ │ ├── nginx/ │ │ └── default.conf │ ├── php/ │ │ ├── Dockerfile │ │ └── php.ini │ └── mysql/ │ └── my.cnf ├── src/ │ └── (Laravelプロジェクト) ├── .env ├── .gitignore └── docker-compose.yml ``` ## セットアップ手順 ### 1. Laravelプロジェクトのインストール srcフォルダにLaravelをインストールします: ```bash # Dockerコンテナをビルド docker-compose build # PHPコンテナでLaravelをインストール docker-compose run --rm php composer create-project laravel/laravel . ``` ### 2. Laravel環境設定 `src/.env` ファイルを編集してデータベース設定を変更: ```env DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user DB_PASSWORD=secret MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null ``` ### 3. コンテナの起動 ```bash docker-compose up -d ``` ### 4. Laravel初期設定 ```bash # キャッシュクリア docker-compose exec php php artisan config:clear # マイグレーション実行 docker-compose exec php php artisan migrate ``` ## アクセスURL - **アプリケーション**: http://localhost:9700 - **PhpMyAdmin**: http://localhost:9701 - **MailHog Web UI**: http://localhost:9725 ## よく使うコマンド ```bash # コンテナ起動 docker-compose up -d # コンテナ停止 docker-compose down # コンテナ再起動 docker-compose restart # ログ確認 docker-compose logs -f # PHPコンテナに入る docker-compose exec php bash # Artisanコマンド実行 docker-compose exec php php artisan [command] # Composer実行 docker-compose exec php composer [command] # npm実行 docker-compose exec php npm [command] ``` ## データベース接続情報 - **ホスト**: localhost (外部) / mysql (コンテナ内) - **ポート**: 9702 (外部) / 3306 (コンテナ内) - **データベース名**: laravel - **ユーザー名**: laravel_user - **パスワード**: secret - **rootパスワード**: secret ## トラブルシューティング ### パーミッションエラーが出る場合 ```bash # storageとbootstrap/cacheのパーミッション設定 docker-compose exec php chmod -R 775 storage bootstrap/cache docker-compose exec php chown -R www-data:www-data storage bootstrap/cache ``` ### コンテナが起動しない場合 ```bash # コンテナとボリュームを全て削除して再構築 docker-compose down -v docker-compose build --no-cache docker-compose up -d ```