実現したいこと
画面を表示した際にエラーが出ていますのでエラーを解消したいです。
前提
現在、Windows10のWSL上でPHP/Laravelのtodoリストを作成しています。
・postgresql起動→sudo service postgresql start
・docker起動
・Laravel sail起動→./vendor/bin/sail up
・ローカル表示→http://127.0.0.1:80/
ローカル画面を表示したときにDBに接続できていないと思われるようなエラーが表示されます。
※エラーの場所:app/Http/Controllers/MainController.php: 11
$items = DB::select('select * from todolist');でエラー
発生している問題・エラーメッセージ
SQLSTATE[08006] [7] connection to server at "127.0.0.1", port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?
該当のソースコード
php
1<?php 2namespace App\Http\Controllers; 3 4use Illuminate\Support\Facades\DB; 5use Illuminate\Http\Request; 6 7class MainController extends Controller 8{ 9 public function index() { 10 $items = DB::select('select * from todolist'); 11 return view('todo', ['items' => $items]); 12 } 13}
.env
DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=todo DB_USERNAME=postgres DB_PASSWORD=pass01
docker-compose.yml
services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.2 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: sail-8.2/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '${APP_PORT:-80}:80' - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' IGNITION_LOCAL_SITES_PATH: '${PWD}' volumes: - '.:/var/www/html' networks: - sail depends_on: - pgsql pgsql: image: 'postgres:15' 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' - './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql' networks: - sail healthcheck: test: - CMD - pg_isready - '-q' - '-d' - '${DB_DATABASE}' - '-U' - '${DB_USERNAME}' retries: 3 timeout: 5s networks: sail: driver: bridge volumes: sail-pgsql: driver: local
DB情報(php artisan tinker)確認
> DB::connection()->getconfig(); = [ "driver" => "pgsql", "host" => "127.0.0.1", "port" => "5432", "database" => "todo", "username" => "postgres", "password" => "pass01", "charset" => "utf8", "prefix" => "", "prefix_indexes" => true, "search_path" => "public", "sslmode" => "prefer", "name" => "pgsql", ] >
試したこと
https://zenn.dev/nagan/articles/364f441d0e63b0
postmaster.pidを削除→エラーは同じでした。
