라라벨 세일(Laravel Sail) 소개
Laravel Sail은 Laravel 프레임워크의 공식 개발 환경입니다. Sail은 Docker를 사용하여 Laravel 애플리케이션 개발 환경을 쉽게 설정하고 관리할 수 있는 경량 명령줄 인터페이스(CLI)를 제공합니다. 아래에서는 Laravel Sail의 주요 기능과 사용법을 설명합니다.
Laravel Sail 사용의 이점
-
OS 독립적인 개발 환경 구축
- Sail은 Docker를 사용하여 Laravel 애플리케이션용 개발 환경을 컨테이너화합니다. 이를 통해 OS에 독립적인 개발 환경을 구축할 수 있습니다.
-
손쉬운 개발 환경 설정
- Sail을 사용하면 몇 가지 명령만으로 Laravel 개발 환경을 설정할 수 있습니다. MySQL, Redis, MailHog 등을 이용한 복잡한 개발 환경도 쉽게 구축할 수 있습니다.
-
다른 버전의 프로젝트도 쉽게 관리
- 예를 들어 Laravel의 버전은 PHP 버전에 따라 다르지만 docker-compose.yml 파일에서 프로젝트별 환경을 설정해 주면 쉽게 버전을 전환할 수 있습니다.
Laravel Sail과 함께 Docker를 사용하여 프로젝트를 생성하면 구조는 위 다이어그램과 같습니다.
용법
개발환경
- 맥
- PHP v8.3
- 라라벨 v11
- 도커
전제조건
Laravel 프로젝트를 생성하기 전에 Docker Desktop을 다운로드하여 시작하세요.
https://www.docker.com/products/docker-desktop/
1. 라라벨 프로젝트 생성
다음 명령을 실행하여 새로운 Laravel 프로젝트를 생성하고 Laravel Sail을 설정하세요.
curl -s "https://laravel.build/example-app" | bash cd example-app
이렇게 하면 Laravel 프로젝트 파일이 생성됩니다. 생성된 docker-compose.yml 파일에 개발 환경이 설명되어 있습니다.
with 쿼리를 사용하여 서비스 지정
PHP 버전을 지정하거나 MySQL 대신 PostgreSQL을 사용하려면 프로젝트 생성 시 명령에 with=
curl -s "https://laravel.build/example-app?php=81&with=pgsql,redis" | bash
2. 항해 시작
프로젝트 디렉토리로 이동하여 Sail을 시작하세요.
./vendor/bin/sail up -d
이 명령은 Docker 컨테이너를 시작하고 Laravel 애플리케이션을 실행합니다.
※별칭 등록
./vendor/bin/sail을 입력하는 것은 번거로우므로 셸 구성 파일에 별칭 항해로 저장하세요.
다음 명령으로 사용 중인 쉘의 경로를 확인하세요
echo $SHELL
예: /bin/zsh
셸 구성 파일 편집
- zsh의 경우
셸 구성 파일은 ~/.zshrc입니다.
별칭을 추가하려면 다음 명령을 실행하세요
curl -s "https://laravel.build/example-app" | bash cd example-app
- 배쉬용
셸 구성 파일은 ~/.bash_profile 또는 ~/.bashrc입니다.
별칭을 추가하려면 다음 명령을 실행하세요.
curl -s "https://laravel.build/example-app?php=81&with=pgsql,redis" | bash
위 설정으로 항해 명령을 단축된 형태로 실행할 수 있습니다.
./vendor/bin/sail up -d
3. 항해 명령 사용
Sail을 사용하여 다양한 개발 작업을 수행할 수 있습니다. 다음은 몇 가지 예입니다.
- 애플리케이션 시작:
echo $SHELL
- 애플리케이션 중지:
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.zshrc source ~/.zshrc
- Artisan 명령 실행:
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.bash_profile source ~/.bash_profile
- Composer 명령 실행:
sail up -d
- npm 명령 실행:
sail up -d
4. 서비스 변경
프로젝트를 생성한 후에도 Docker 구성 파일인 docker-compose.yml 파일을 수정하여 서비스를 변경할 수 있습니다. 여기서는 PHP 버전과 사용되는 데이터베이스를 변경하겠습니다.
PHP 버전 변경
먼저 현재 PHP 버전을 확인하세요
sail down
다음으로 docker-compose.yml 파일에 설명된 개발 환경 정보를 수정합니다.
sail artisan migrate
빌드 컨텍스트와 이미지를 8.1로 변경합니다.
sail composer install
docker-compose.yml 수정 후 애플리케이션을 중지합니다.
sail npm install
다음으로 Docker 컨테이너를 다시 빌드하여 변경 사항을 반영하세요.
sail php -v PHP 8.3.12 (cli) (built: Sep 27 2024 03:53:05) (NTS)
애플리케이션을 다시 시작하세요.
services: laravel.test: build: context: "./vendor/laravel/sail/runtimes/8.3" dockerfile: Dockerfile args: WWWGROUP: "${WWWGROUP}" image: "sail-8.3/app"
PHP 버전이 변경되었는지 확인하세요.
services: laravel.test: build: context: "./vendor/laravel/sail/runtimes/8.1" dockerfile: Dockerfile args: WWWGROUP: "${WWWGROUP}" image: "sail-8.1/app"
PHP 버전이 PHP 8.3에서 PHP 8.1로 변경되었습니다.
사용된 데이터베이스 변경
MySQL로 만든 프로젝트를 PostgreSQL로 변경하세요.
Sail 설치 명령 실행
sail down
pgsql 선택
sail build --no-cache
docker-compose.yml 파일을 확인하고 pgsql 항목이 추가되었는지 확인하세요.
sail up -d
ext, 프로젝트 디렉토리에서 .env 파일을 열고 DB_CONNECTION=pgsql 및 DB_HOST=pgsql이 설정되어 있는지 확인하세요.
그렇지 않은 경우 수동으로 변경하세요.
sail php -v PHP 8.1.30 (cli) (built: Sep 27 2024 04:07:29) (NTS)
docker-compose.yml 및 .env의 변경 사항을 확인한 후 애플리케이션을 중지합니다.
sail php artisan sail:install
다음으로 Docker 컨테이너를 다시 빌드하여 변경 사항을 반영하세요.
┌ Which services would you like to install? ───────────────────┐ │ ◼ mysql ┃ │ │ › ◻ pgsql │ │ │ ◻ mariadb │ │ │ ◻ redis │ │ │ ◻ memcached │ │ └────────────────────────────────────────────────── 1 selected ┘ Use the space bar to select options.
애플리케이션을 다시 시작하세요.
services: laravel.test: ... depends_on: - mysql - redis - meilisearch - mailpit - selenium - pgsql ... pgsql: image: 'postgres:17' 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
마이그레이션 파일을 실행하세요.
DB_CONNECTION=pgsql DB_HOST=pgsql DB_PORT=5432 DB_DATABASE=laravel DB_USERNAME=sail DB_PASSWORD=******
Docker에서 셸을 시작하고 pgsql을 확인하세요
현재 실행 중인 Docker 컨테이너 목록을 표시합니다.
curl -s "https://laravel.build/example-app" | bash cd example-app
curl -s "https://laravel.build/example-app?php=81&with=pgsql,redis" | bash
애플리케이션의 컨테이너 이름을 확인하고 Docker 내부에서 애플리케이션의 bash를 시작하세요.
./vendor/bin/sail up -d
pgsql에 연결합니다.
echo $SHELL
비밀번호를 묻는 메시지가 표시되므로 .env 파일에 지정된 DB_PASSWORD를 입력하세요.
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.zshrc source ~/.zshrc
pgsql에서 테이블 확인
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.bash_profile source ~/.bash_profile
이렇게 하면 프로젝트 생성 후에도 MySQL에서 PostgreSQL로 변경할 수 있습니다.
결론
이 글을 통해 Laravel Sail을 사용하여 개발 환경을 효율적으로 설정하고 관리하는 방법을 이해할 수 있습니다. 적절한 서비스를 선택하고 프로젝트 요구 사항에 따라 설정을 맞춤화하면 보다 유연하고 강력한 개발 환경을 구현할 수 있습니다.
위 내용은 [Laravel vx Docker] Laravel Sail을 사용하여 Laravel 앱 개발 환경을 효율적으로 설정하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

절대 세션 시간 초과는 세션 생성시 시작되며, 유휴 세션 시간 초과는 사용자가 작동하지 않아 시작합니다. 절대 세션 타임 아웃은 금융 응용 프로그램과 같은 세션 수명주기의 엄격한 제어가 필요한 시나리오에 적합합니다. 유휴 세션 타임 아웃은 사용자가 소셜 미디어와 같이 오랫동안 세션을 활성화하려는 응용 프로그램에 적합합니다.

서버 세션 고장은 다음 단계를 따라 해결할 수 있습니다. 1. 서버 구성을 확인하여 세션이 올바르게 설정되었는지 확인하십시오. 2. 클라이언트 쿠키를 확인하고 브라우저가 지원하는지 확인하고 올바르게 보내십시오. 3. Redis와 같은 세션 스토리지 서비스가 정상적으로 작동하는지 확인하십시오. 4. 올바른 세션 로직을 보장하기 위해 응용 프로그램 코드를 검토하십시오. 이러한 단계를 통해 대화 문제를 효과적으로 진단하고 수리 할 수 있으며 사용자 경험을 향상시킬 수 있습니다.

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

XSS 공격을 효과적으로 방지하고 사용자 세션 정보를 보호 할 수 있기 때문에 httponly 플래그를 설정하는 것은 세션 쿠키에 중요합니다. 구체적으로, 1) httponly 플래그는 JavaScript가 쿠키에 액세스하는 것을 방지합니다. 2) PHP 및 Flask에서 SetCookies 및 Make_response를 통해 깃발을 설정할 수 있습니다. 3) 모든 공격으로부터 방지 할 수는 없지만 전체 보안 정책의 일부가되어야합니다.

phpssessionssolvetheproblemofmainingstateacrossmultiplehtttprequestsbystoringdataontheserversociatingititwithauniquessessionid.1) theStoredAserver-side, 일반적으로, 일반적으로 and insessionsecietoretoretrievedata.2) sessionsenhances

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
