물론 도커를 활용하여 바로 설치하면 편합니다. 그렇지만 자유롭게 다루기 위해서는 조금 더 세부적인 설정을 둘러보면 좋습니다. 이번 챕터에서는 mysql 만 한정적으로 docker 를 활용하여 윈도우 로컬환경과 연결시켜 진행합니다. 천천히 따라하면 누구나 할 수 있으니 잘 따라와주세요.
php를 다운로드 받습니다. 현재 기준 8.3 이 최신이며 더욱 최신 버전이 나왔을 경우 상황에 맞추어 설치를 진행하시면 됩니다. Non Thread Safe 버전의 Zip 파일을 다운로드합니다.
다운로드한 압축 파일은 C:\php\php-{버전} 으로 저장합니다.
extension=fileinfo
extension=pdo_mysql
extension=zip
php 경로에 있는 php.ini 를 수정합니다. 위의 3개의 extension 을 주석 해제하시면 됩니다.
특히 fileinfo 와 zip 을 해제하지 않고 설치를 진행하면 에러가 발생하게 되니 반드시 진행해주세요
환경 변수 설정을 진행합니다. 윈도우 버튼을 클릭 후 환경변수 를 검색하신 뒤 아래의 버튼을 클릭합니다
변수에 있는 Path 탭을 클릭한 뒤 {php 가 설치된 경로} 를 지정합니다.
컴포저는 php 라이브러리를 자유자재로 다룰 수 있는 도구입니다. 윈도우 버전을 다운받아 진행합니다.
진행 시 php 를 다운받은 경로를 연결해야 합니다.
클론 작업이 필요하기에 git 설치를 진행합니다. 자신에 맞는 버전을 다운받아 설치를 진행합니다.
composer create-project laravel/laravel example-app
cd example-app
php artisan serve
php artisan serve 를 입력하여 접근을시도합니다
php artisan key:generate --ansi
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
자 이제 해당 파일이 있는 경로를 들어간 뒤 위의 명령어를 입력합니다.
위의 명령어가 발생하는 경우, docker 를 실행한 뒤 설정에서 WSL intergration > Ubuntu 를 활성화 합니다. 그 뒤로 터미널에 접근한 뒤 아래의 명령어를 입력합니다.
wsl --update
진행이 완료되었다면 다시한번 시도해보세요. 혹은 재부팅을 한 뒤 재시도해봅니다.
이미지 올리는 것에 성공했다면 위와 같은 화면이 뜨게 됩니다.
도커 데스크탑에 접근하면 위와 같이 뜨게 됩니다.
제대로 이미지가 올라갔다면 127.0.0.1:8080 포트에 접근할 수 있습니다.
아이디 비밀번호는 모두 docker-compose.yml 에 써있는 대로 입력하면 되며, 기본값은 root / root 로 되어있습니다. database 는 공백란으로 두고 접근하면 위의 화면을 볼 수 있게 됩니다.
.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 을 활성화해주세요