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