SlideShare une entreprise Scribd logo
1  sur  23
Windows PHP 개발환경 구성하기
Valet 으로
정광섭(https://lesstif.com)
로컬 개발 환경 구성
- PHP 웹 App 를 작성하기 위한 개개인의 작업 환경
- Apache, MySQL, PHP 기반
- Linux 의 경우 LAMP, Windows 는 MAMP
로컬 개발 환경 구성
- 맥북 사용시 brew 로 간단하게 환경 구성 가능
- 모두 다 맥북 하나씩은 갖고 있죠?
현실 – 개발자 PC 는 Windows 가 더 많음
- Windows 는 CLI 환경이 매우 불편
- 불편한 CLI 로 인해 자동화가 어려움
- Win10 부터 WSL (Windows Subsystem For Linux) 로 리눅스
지원이 편리해짐
현실 – 너무 다양한 AMP 패키지
- EasyPHP
- AMPPS
- Bitnami WAMP
- Iz-WAMP
- MAMP
- 오토셋
- …
https://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
현실 –모두가 PHP 개발자가 아님
- 프로젝트에 PHP 개발자만 있는 것은 아님
- 디자이너
- 퍼블리셔
- DBA
- Front End 개발자
- AMP 환경 구성이 익숙하지 않을 수 있음
AMP 설치가 끝이 아님
- Deploy 를 위해 Web Server 설정 익혀야 함(Virtual Host등)
- 운영 환경은 Apache 가 아닌 Nginx 도 많이 사용
- Apache 와 Nginx 의 설정 방법 상이
PHP Deploy 문제
- PHP 프레임워크나 솔루션에 따라 DocumentRoot 가 달라짐
- Wordpress – wp-config.php 가 ROOT
- Laravel – public 폴더
PHP 로컬 웹 서버
- php -S 0.0.0.0:8000
- 가상 호스트 설정의 어려움을 피하기 위한 간단한 방법
- 포트로 구분하므로 여러 개의 프로젝트가 있을 경우 헷갈림
(하나만 하면 좋겠지만 현실은…)
- 레거시 수정 필요시 개발 환경이 미리 잘 구성되어 있지 않
다면 꽤 헤맬수 있음
솔루션 - Homestead
- 자동화 솔루션인 Vagrant 기반
- 가상 머신(Virtual Box) 에 Ubuntu 및
개발에 필요한 모든 패키지 자동 설치 및 설정
- 사용할 수 있다면 최고의 개발 환경 구성 도구
Homestead 단점
- 가상 머신에 대한 기본 적인 이해 필요
- VM이라 속도가 매우 많이 느림
- 안될 경우 해결이 너무 어려움
솔루션 – Docker
- VM 에 비해서 매우 빠름
- LaraDock 등 Docker 기반 패키지 존재
- 하지만 Docker 를 배워야 하는 부담이 있음
Docker 단점
- Docker 학습 비용 발생
- 운영 배포면 모를까 docker 로 개발 환경 구성은 오버 스펙
(docker 에 익숙하다면 예외)
솔루션 - Valet
- VM 이 아니므로 동작이 매우 빠름
- 부팅과 동시에 nginx 를 구동
- 자동으로 Virtual Host 설정(Valet Driver)
- 로컬 DNS 서버를 구성하여 브라우저에서 폴더명.dev 로 연
결
솔루션 - Valet
- 개발 환경 구성(parking)은 valet 에 맡기고 개발에만 집중
가능
- OS X 만 지원
Valet for Windows
- Valet 의 Windows 포팅(https://github.com/cretueusebiu/valet-windows)
- nginx 와 PHP-FPM(사실은 php-cgi) 을 Windows 의 서비스
로 자동 등록
- Acrylic DNS 로 Local DNS 서버 기능 제공
사전 준비 사항
- PHP, MySQL
- Composer
- Windows 용 패키지 관리자인 choco 가 있다면 다음 명령 실
행
- choco install php mysql composer–y
설치
- cmd.exe 실행후 아래 명령 실행
composer global require cretueusebiu/valet-windows
- Valet 명령어가 설치된 경로를 PATH 에 추가
(%APPDATA%RoamingComposervendorbin)
- 관리자로 cmd.exe 실행 후 아래 명령어로 발렛 설치
valet install
- 에러 발생시 ~/.valet/Log 폴더의 로그 확인
설정
- .dev 도메인으로 연결할 수 있도록 첫 번째 DNS 를
127.0.0.1 로 변경
- %USERPROFILE%.valetServices 의
phpfpmservice.xml 에 PHP 경로 설정
<service>
<id>valet_phpfpm</id>
<name>valet_phpfpm</name>
<description>Valet PHP-FPM</description>
<executable>d:develphpphp-7.1.8-Win32-VC14-x64php-cgi.exe</executable>
<!--
<executable>php-7.0.16-Win32-VC14-x64</executable>
<executable>php-5.6.30-Win32-VC11-x64</executable>
-->
<arguments>-b 127.0.0.1:9000</arguments>
<logpath>C:Userslesstif/.valetLog</logpath>
<logmode>reset</logmode>
<onfailure action="restart"/>
</service>
사용 - park
- 특정 경로내(예: c:UserslesstifSites) 의 모든 폴더 자동으
로 등록
valet park
- 이제 폴더명.dev 로
연결 가능
기본 도메인 변경
- 기본 도메인은 .dev 이며 변경을 원할 경우 아래 명령 실행
valet domain local
- 이제 폴더명.local 로 연결 가능
로컬 사이트 외부에 공개
- ngrok 를 설치했다면 현재 로컬 개발 사이트를 쉽게 공유 가
능
- 공유할 프로젝트 폴더에서 다음 명령 실행
valet share
- ngrok에 표시된 URL 을 통해 외부에서 로컬 서버 연결 가능
참고 자료 & QnA
• https://laravel.com/docs/5.5/valet
• https://github.com/cretueusebiu/valet-windows
• https://www.lesstif.com/x/iQRVAg

Contenu connexe

Tendances

PHP를 위한 NginX(엔진엑스) 시작과 설정
PHP를 위한 NginX(엔진엑스) 시작과 설정PHP를 위한 NginX(엔진엑스) 시작과 설정
PHP를 위한 NginX(엔진엑스) 시작과 설정Jin wook
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)Sang Don Kim
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER형근 송
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure rockplace
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
Front-end Development with Ruby on Rails
Front-end Development with Ruby on RailsFront-end Development with Ruby on Rails
Front-end Development with Ruby on Rails추근 문
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료shanka2
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화DONGSU KIM
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN정호 전
 
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석NAVER D2
 

Tendances (20)

PHP를 위한 NginX(엔진엑스) 시작과 설정
PHP를 위한 NginX(엔진엑스) 시작과 설정PHP를 위한 NginX(엔진엑스) 시작과 설정
PHP를 위한 NginX(엔진엑스) 시작과 설정
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Cooking jquery
Cooking jqueryCooking jquery
Cooking jquery
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
Front-end Development with Ruby on Rails
Front-end Development with Ruby on RailsFront-end Development with Ruby on Rails
Front-end Development with Ruby on Rails
 
Nodejs 발표자료
Nodejs 발표자료Nodejs 발표자료
Nodejs 발표자료
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
 

Similaire à Valet 으로 windows php 개발 환경 구성하기

Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1성일 한
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Steve Shim
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안Ji-Woong Choi
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기GyeongSeok Seo
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편Sam Kim
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08Nomad Connection, Inc.
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 mWonchang Song
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정양재동 코드랩
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼Tae Young Lee
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows TerminalOnGameServer
 
Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Kyuhyun Byun
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치Lee Seungeun
 

Similaire à Valet 으로 windows php 개발 환경 구성하기 (20)

Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
[오픈소스컨설팅]클라우드자동화 및 운영효율화방안
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
AWS + Docker in Vingle
AWS + Docker in VingleAWS + Docker in Vingle
AWS + Docker in Vingle
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08[Nomad connection]docker seminar 15.10.08
[Nomad connection]docker seminar 15.10.08
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 m
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
 
OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼OpenStack으로 바로보는 상용 클라우드 플랫폼
OpenStack으로 바로보는 상용 클라우드 플랫폼
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
 
Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치랩탑으로 tensorflow 도전하기 - tensorflow 설치
랩탑으로 tensorflow 도전하기 - tensorflow 설치
 

Valet 으로 windows php 개발 환경 구성하기

  • 1. Windows PHP 개발환경 구성하기 Valet 으로 정광섭(https://lesstif.com)
  • 2. 로컬 개발 환경 구성 - PHP 웹 App 를 작성하기 위한 개개인의 작업 환경 - Apache, MySQL, PHP 기반 - Linux 의 경우 LAMP, Windows 는 MAMP
  • 3. 로컬 개발 환경 구성 - 맥북 사용시 brew 로 간단하게 환경 구성 가능 - 모두 다 맥북 하나씩은 갖고 있죠?
  • 4. 현실 – 개발자 PC 는 Windows 가 더 많음 - Windows 는 CLI 환경이 매우 불편 - 불편한 CLI 로 인해 자동화가 어려움 - Win10 부터 WSL (Windows Subsystem For Linux) 로 리눅스 지원이 편리해짐
  • 5. 현실 – 너무 다양한 AMP 패키지 - EasyPHP - AMPPS - Bitnami WAMP - Iz-WAMP - MAMP - 오토셋 - … https://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
  • 6. 현실 –모두가 PHP 개발자가 아님 - 프로젝트에 PHP 개발자만 있는 것은 아님 - 디자이너 - 퍼블리셔 - DBA - Front End 개발자 - AMP 환경 구성이 익숙하지 않을 수 있음
  • 7. AMP 설치가 끝이 아님 - Deploy 를 위해 Web Server 설정 익혀야 함(Virtual Host등) - 운영 환경은 Apache 가 아닌 Nginx 도 많이 사용 - Apache 와 Nginx 의 설정 방법 상이
  • 8. PHP Deploy 문제 - PHP 프레임워크나 솔루션에 따라 DocumentRoot 가 달라짐 - Wordpress – wp-config.php 가 ROOT - Laravel – public 폴더
  • 9. PHP 로컬 웹 서버 - php -S 0.0.0.0:8000 - 가상 호스트 설정의 어려움을 피하기 위한 간단한 방법 - 포트로 구분하므로 여러 개의 프로젝트가 있을 경우 헷갈림 (하나만 하면 좋겠지만 현실은…) - 레거시 수정 필요시 개발 환경이 미리 잘 구성되어 있지 않 다면 꽤 헤맬수 있음
  • 10. 솔루션 - Homestead - 자동화 솔루션인 Vagrant 기반 - 가상 머신(Virtual Box) 에 Ubuntu 및 개발에 필요한 모든 패키지 자동 설치 및 설정 - 사용할 수 있다면 최고의 개발 환경 구성 도구
  • 11. Homestead 단점 - 가상 머신에 대한 기본 적인 이해 필요 - VM이라 속도가 매우 많이 느림 - 안될 경우 해결이 너무 어려움
  • 12. 솔루션 – Docker - VM 에 비해서 매우 빠름 - LaraDock 등 Docker 기반 패키지 존재 - 하지만 Docker 를 배워야 하는 부담이 있음
  • 13. Docker 단점 - Docker 학습 비용 발생 - 운영 배포면 모를까 docker 로 개발 환경 구성은 오버 스펙 (docker 에 익숙하다면 예외)
  • 14. 솔루션 - Valet - VM 이 아니므로 동작이 매우 빠름 - 부팅과 동시에 nginx 를 구동 - 자동으로 Virtual Host 설정(Valet Driver) - 로컬 DNS 서버를 구성하여 브라우저에서 폴더명.dev 로 연 결
  • 15. 솔루션 - Valet - 개발 환경 구성(parking)은 valet 에 맡기고 개발에만 집중 가능 - OS X 만 지원
  • 16. Valet for Windows - Valet 의 Windows 포팅(https://github.com/cretueusebiu/valet-windows) - nginx 와 PHP-FPM(사실은 php-cgi) 을 Windows 의 서비스 로 자동 등록 - Acrylic DNS 로 Local DNS 서버 기능 제공
  • 17. 사전 준비 사항 - PHP, MySQL - Composer - Windows 용 패키지 관리자인 choco 가 있다면 다음 명령 실 행 - choco install php mysql composer–y
  • 18. 설치 - cmd.exe 실행후 아래 명령 실행 composer global require cretueusebiu/valet-windows - Valet 명령어가 설치된 경로를 PATH 에 추가 (%APPDATA%RoamingComposervendorbin) - 관리자로 cmd.exe 실행 후 아래 명령어로 발렛 설치 valet install - 에러 발생시 ~/.valet/Log 폴더의 로그 확인
  • 19. 설정 - .dev 도메인으로 연결할 수 있도록 첫 번째 DNS 를 127.0.0.1 로 변경 - %USERPROFILE%.valetServices 의 phpfpmservice.xml 에 PHP 경로 설정 <service> <id>valet_phpfpm</id> <name>valet_phpfpm</name> <description>Valet PHP-FPM</description> <executable>d:develphpphp-7.1.8-Win32-VC14-x64php-cgi.exe</executable> <!-- <executable>php-7.0.16-Win32-VC14-x64</executable> <executable>php-5.6.30-Win32-VC11-x64</executable> --> <arguments>-b 127.0.0.1:9000</arguments> <logpath>C:Userslesstif/.valetLog</logpath> <logmode>reset</logmode> <onfailure action="restart"/> </service>
  • 20. 사용 - park - 특정 경로내(예: c:UserslesstifSites) 의 모든 폴더 자동으 로 등록 valet park - 이제 폴더명.dev 로 연결 가능
  • 21. 기본 도메인 변경 - 기본 도메인은 .dev 이며 변경을 원할 경우 아래 명령 실행 valet domain local - 이제 폴더명.local 로 연결 가능
  • 22. 로컬 사이트 외부에 공개 - ngrok 를 설치했다면 현재 로컬 개발 사이트를 쉽게 공유 가 능 - 공유할 프로젝트 폴더에서 다음 명령 실행 valet share - ngrok에 표시된 URL 을 통해 외부에서 로컬 서버 연결 가능
  • 23. 참고 자료 & QnA • https://laravel.com/docs/5.5/valet • https://github.com/cretueusebiu/valet-windows • https://www.lesstif.com/x/iQRVAg