valet 으로 windows php 개발 환경 구성하기
TRANSCRIPT
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%\Roaming\Composer\vendor\bin)
- 관리자로 cmd.exe 실행 후아래명령어로발렛설치valet install
- 에러발생시 ~/.valet/Log 폴더의로그확인
설정
- .dev 도메인으로연결할수있도록첫 번째 DNS 를127.0.0.1 로변경
- %USERPROFILE%\.valet\Services 의phpfpmservice.xml 에 PHP 경로설정
<service><id>valet_phpfpm</id><name>valet_phpfpm</name><description>Valet PHP-FPM</description><executable>d:\devel\php\php-7.1.8-Win32-VC14-x64\php-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:\Users\lesstif/.valet\Log\</logpath><logmode>reset</logmode><onfailure action="restart"/>
</service>
사용 - park
- 특정경로내(예: c:\Users\lesstif\Sites) 의모든폴더 자동으로등록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