라라벨 윈도우 : 도커없이 설치하기 (24년 3월 최신)

|

  • 2024년 03월 11일에 작성된 문서입니다
  • XAMPP는 더이상 사용하지 않습니다

도커 없이 설치 하는 이유

물론 도커를 활용하여 바로 설치하면 편합니다. 그렇지만 자유롭게 다루기 위해서는 조금 더 세부적인 설정을 둘러보면 좋습니다. 이번 챕터에서는 mysql 만 한정적으로 docker 를 활용하여 윈도우 로컬환경과 연결시켜 진행합니다. 천천히 따라하면 누구나 할 수 있으니 잘 따라와주세요.

  • XAMPP는 윈도우에서 환경 설정을 손쉽게 구현할 수 있는 도구입니다. 그러나 잔버그가 많아 설치하고 나서 문제가 많이 발생했기 때문에 추천드리지 않습니다. 차라리 진행하신다면 라라곤(Laragon) 을 활용하시는 것을 추천드립니다.

윈도우에 PHP 설치하기

php를 다운로드 받습니다. 현재 기준 8.3 이 최신이며 더욱 최신 버전이 나왔을 경우 상황에 맞추어 설치를 진행하시면 됩니다. Non Thread Safe 버전의 Zip 파일을 다운로드합니다.

다운로드한 압축 파일은 C:\php\php-{버전} 으로 저장합니다.

php.ini 수정

extension=fileinfo
extension=pdo_mysql
extension=zip

php 경로에 있는 php.ini 를 수정합니다. 위의 3개의 extension 을 주석 해제하시면 됩니다.
특히 fileinfo 와 zip 을 해제하지 않고 설치를 진행하면 에러가 발생하게 되니 반드시 진행해주세요

환경 변수 설정을 진행합니다. 윈도우 버튼을 클릭 후 환경변수 를 검색하신 뒤 아래의 버튼을 클릭합니다

변수에 있는 Path 탭을 클릭한 뒤 {php 가 설치된 경로} 를 지정합니다.

컴포저(Composer) 설치하기

컴포저는 php 라이브러리를 자유자재로 다룰 수 있는 도구입니다. 윈도우 버전을 다운받아 진행합니다.
진행 시 php 를 다운받은 경로를 연결해야 합니다.

클론 작업이 필요하기에 git 설치를 진행합니다. 자신에 맞는 버전을 다운받아 설치를 진행합니다.

composer create-project laravel/laravel example-app

설치 후 진행

cd example-app

php artisan serve

php artisan serve 를 입력하여 접근을시도합니다

키 파일 생성

php artisan key:generate --ansi

docker mysql 설치하기

version: "3.9"
services:
  mysql:
    image: mariadb:10.8.3
    # Uncomment below when on Mac M1
    # platform: linux/arm64/v8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - 3306:3306
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

docker-compose.yml 파일을 생성합니다.
상황에 따라 포트번호를 변경하면 됩니다. 3308:3306 으로 변경하면 됩니다.

docker-compose up -d

자 이제 해당 파일이 있는 경로를 들어간 뒤 위의 명령어를 입력합니다.

  • PS C:\Users\l16\Desktop\project\240311-laravel-study-udemy\example-app> docker-compose up -d
  • error during connect: this error may indicate that the docker daemon is not running: Get “http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dexample-app%22%3Atrue%7D%7D”: open //./pipe/docker_engine: The system cannot find the file specified.

위의 명령어가 발생하는 경우, docker 를 실행한 뒤 설정에서 WSL intergration > Ubuntu 를 활성화 합니다. 그 뒤로 터미널에 접근한 뒤 아래의 명령어를 입력합니다.

wsl --update

진행이 완료되었다면 다시한번 시도해보세요. 혹은 재부팅을 한 뒤 재시도해봅니다.

이미지 올리는 것에 성공했다면 위와 같은 화면이 뜨게 됩니다.

도커 데스크탑에 접근하면 위와 같이 뜨게 됩니다.

제대로 이미지가 올라갔다면 127.0.0.1:8080 포트에 접근할 수 있습니다.
아이디 비밀번호는 모두 docker-compose.yml 에 써있는 대로 입력하면 되며, 기본값은 root / root 로 되어있습니다. database 는 공백란으로 두고 접근하면 위의 화면을 볼 수 있게 됩니다.

MySQL 과 라라벨 연결하기

.env 파일에서 위와 같이 입력을 진행합니다.
따로 다른 파일을 설정할 부분은 전혀 없습니다. 이 곳에서 sql 연결을 설정하면 됩니다.
(config/database.php 또한 자동으로 .env 파일의 값을 존속받습니다)

php artisan migrate

마이그레이션 작업을 진행합니다. 테이블이 생성되어있지 않기 때문에
yes 를 입력 하면 생성작업을 진행할겁니다.

발행

@php artisan vendor:publish --tag=laravel-assets --ansi --force

당장 발행할게 없어서 할 필요는 없습니다

문제 생겼을 때 대처법

폴더 삭제가 안될 경우

rm -r -Force example-app

저는 윈도우 환경에서 삭제가 안될 상황이 존재했습니다. 명령어를 통해 삭제를 진행해야 합니다.

라라벨 설치 진행이 안될 경우

Loading composer repositories with package information
Updating dependencies (including require-dev)
    Failed to download psr/log from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
    Now trying to download from source

php.ini 파일에서extension=zip 을 활성화해주세요

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다