관리 메뉴

java,javascript,android,php,sql,공부용,메모용

라라벨 2 - 프로젝트 생성, mysql 오류, 라라벨 세일, 앨리어스, sail, alias 본문

개발/php

라라벨 2 - 프로젝트 생성, mysql 오류, 라라벨 세일, 앨리어스, sail, alias

yy_dd2 2025. 9. 3. 15:42
반응형

라라벨관련해서 책이랑 같이 공부하지만 설명이 부족한 부분들이 많다 특히 오류가 발생했을 때 혼자 공부하면 해결방안을 찾기까지 많은 시간이 소요되거나 오류 해결에 있어서 공부를 하기 전에 힘들다.

이제 챗지피티는 개발에 빠져서는 안될 선생님,친구,동기 같은 존재가 된 것 같다.

물어본 내용들이나 학습한 공부 내용에 대한 정리는 아래처럼 챗지피를 사용하려고 한다.

내가 정리달라는 대로 해줬으니 만족한다. 다음에 내가 보고 편하게 사용할 수 있을 것.

다른 사람들에게도 도움이 되길~

📌 맥북에서 Laravel Sail 환경 구축 & 실행 정리

1. 프로젝트 이동

터미널을 열고 Laravel 프로젝트를 만들고 싶은 위치로 이동합니다.

cd ~/Documents/laravel

2. Laravel 다운로드

샘플 프로젝트를 sample이라는 이름으로 생성합니다.

curl -s "https://laravel.build/sample" | bash
cd sample

2-1. 초기 실행 시 발생한 오류

Illuminate\Database\QueryException
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.sessions' doesn't exist
  • 원인: Laravel이 세션 저장을 DB에 하도록 설정되어 있는데, 테이블이 아직 생성되지 않음
  • 해결 방법:
    • .env에서 SESSION_DRIVER=file로 변경하여 파일 세션 사용
    • sail artisan migrate 실행하여 기본 테이블 생성

3. Laravel 실행

3-1. 컨테이너 실행

./vendor/bin/sail up        # 실행 (로그 출력)
./vendor/bin/sail up -d     # 백그라운드 실행

alias 설정:

alias sail="./vendor/bin/sail"

이후부터는 sail up, sail up -d로 간단히 실행할 수 있습니다.

3-2. 컨테이너 종료

  • Laravel Sail 종료:
    sail down
  • Docker 전체 컨테이너 확인 및 중지:
    docker ps        # 실행 중인 컨테이너 목록
    docker stop <ID> # 특정 컨테이너 종료
    

4. 컨테이너 목록 확인

docker ps          # 실행 중인 컨테이너 목록
docker ps -a       # 중지된 것까지 전체 표시

5. MySQL 접속

방법 1. Sail 명령어 이용

sail mysql

방법 2. 컨테이너 쉘에서 접속

sail shell
mysql -u root -p -h mysql

비밀번호는 .env 파일의 DB_PASSWORD 값(기본값: password)을 입력합니다.


✅ 여기까지 하면 맥북에서 Laravel Sail 환경 구축 + 실행 + MySQL 접속까지 완료됩니다 🎉


+ 추가 25.9.30
- 최신 Laravel skeleton 설치 대신(책이 21년12월31일초판이라함) 라라벨 12.x 버전 설치 과정을 다루고 있었을 가능성이 높습니다. 그런데 Laravel 12부터는 “미니멀 skeleton” 방식이 기본이어서, 과거처럼 app/Providers 안에 모든 기본 프로바이더가 자동으로 들어오지 않을 수 있어요.

  • AppServiceProvider.php는 생김 ✅
  • 나머지 AuthServiceProvider.php, EventServiceProvider.php, RouteServiceProvider.php는 포함되지 않음 ❌

- 기본 curl 설치 방식의 한계

curl -s https://laravel.build/sample | bash cd sample ./vendor/bin/sail up

  • 이 방법은 Laravel Skeleton 설치를 기준으로 함
  • Skeleton 구조가 미니멀이라 AppServiceProvider.php만 자동 생성됨
  • 즉, AuthServiceProvider.php EventServiceProvider.php RouteServiceProvider.php  등 포함되지 않음

→ 결론: curl 방식만으로는 기본 Provider 전체가 자동 설치되지 않음

 

해결1. 수동 파일추가, 복사 붙여넣기

2025.09.30 - [개발/php] - 라라벨4 app/Providers 폴더 안에 내용이 없음 관련

 

라라벨4 app/Providers 폴더 안에 내용이 없음 관련

라라벨 책보면서 메인페이지, 회원가입, 로그인, 로그아웃을 구현하고 이벤트를 구현하려던 도중에 방생한 문제 (이미 회원가입 만들때 회원가입 후 홈으로 리다이렉트 할때 RouterServiceProvider 파

tog-code.tistory.com

파일 첨부되어있음.


해결2. composer사용

omposer create-project + Sail

  • Docker 환경을 쓰면서도 기본 Provider 전체를 포함시키려면, curl 대신 composer 명령어 사용 가능
 
composer create-project laravel/laravel:^12.0 sample cd sample ./vendor/bin/sail up
  • 이렇게 하면 app/Providers 안에 최소 4개 파일이 생김
  • 이후 Sail 컨테이너에서 바로 개발 가능

요약: curl 방식은 미니멀 skeleton → 파일 수동 추가 필요
composer create-project 방식은 기본 Provider 포함 → Docker에서도 Sail로 바로 사용 가능



 

 



 

반응형
Comments