Skip to content

Instantly share code, notes, and snippets.

@yupmin
Last active April 1, 2020 02:35
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save yupmin/26b44c2dc64d9119a480fd54bc4c441b to your computer and use it in GitHub Desktop.
Save yupmin/26b44c2dc64d9119a480fd54bc4c441b to your computer and use it in GitHub Desktop.
Install Laravel Valet with Phpstorm For Windows

Laravel Valet 은 PHP or Laravel 개발하는데에 거의 필수 툴이 되어가는 듯 합니다. Laravel Valet 제대로 설치하시고 정신건강을 보존하시길 바랍니다.

좀 보강할 내용은 댓글로 남겨주세요.

"Web development that doesn't hurt"

On Windows

0. 참고 링크

1. Cleanup

  • 설치시 되도록이면 Windows 에 설치되어있는 웹서버류(apache, nginx)는 정지 및 삭제 합니다.
  • choco install php 로 설치 하지 않은 php 는 삭제 합니다.
  • 한글 계정명의 경우 제대로 동작하지 않을수 있습니다. 유의 하시길 바랍니다.

2. Install Chocolatey & Cmder

cmd as admin 으로 실행후

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

로 Chocolatey 를 설치합니다.

choco --version
choco install -y Cmder

3. Install PHP

cmder 로 창을 띄워서 CMD as Admin 으로 창을 띄웁니다.

choco install -y php
php --version

필요 모듈을 comment 해제 하거나 추가합니다.

C:\tools\php73\php.ini 

...
extension_dir = "ext"
...
;extension=bz2
extension=curl
extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

...
[opcache]
zend_extension=php_opcache.dll
opcache.enable=On
opcache.enable_cli=On
...

php -m

https://laravel.com/docs/5.8#installation 에서 laravel 에서 필요로 하는 모듈을 확인하도록 하세요. valet, laravel-installer 를 위해 curl, zip, fileinfo 모듈도 있어야 합니다.

4. Install composer

> choco install -y composer
> composer --version

windows 환경변수에 다음을 추가합니다.

%APPDATA%\Composer\vendor\bin

User 에 대한 환경변수, 시스템 환경 변수 에 다음이 있음 확인합니다.

C:\tools\php73
C:\ProgramData\ComposerSetup\bin

5. Install Acrylic DNS and Valet

https://mayakron.altervista.org/wikibase/show.php?id=AcrylicHome

페이지에서 acrylic-dns-proxy 1.0.1 버젼을 깝니다.

Windows Valet 설치

composer global require cretueusebiu/valet-windows
valet --version

CMD as admin 으로 창을 엽니다.

valet install

이렇게 할때 acrylic-dns-proxy 가 오류가 날수 있습니다. 이럴때 uninstall & install 합니다.

valet uninstall
valet install

acrylic-dns-proxy 가 제대로 돌아간다면 다음 테스트가 제대로 동작합니다.

ping blog.test

Pinging blog.test [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

문제가 있을 경우 "제어판" > "네트워크 및 인터넷" > "네트워크 연결" 에 간후 인터넷이 연결 되어있는 것을 우 클릭후 상태 > "속성" > "Internet Protocol version 4" > "속성" 클릭후 "다음 DNS 서버 주소" 사용 기본 설정 DNS 서버 127.0.0.1 보조 DNS 서버 1.1.1.1

설정합니다. 그런후 다시 ping blog.test 테스트 합니다.

혹시나 끝 도메인을 .dev 로 바꾸지 마시길 바랍니다. chrome 에서 접근이 안됩니다.

6. Valet Park

Phpstorm 을 사용하면 프로젝트 폴더인 ~/PhpstormProjects 에서 park 합니다.

composer global require laravel/installer
cd ~/PhpstormProjects
laravel new blog
valet park

park 된 리스트는 다음과 같이 확인합니다.

valet paths

[
    "C:\\Users\\yupmi\\PhpstormProjects"
]

http://blog.test 브라우저에서 테스트 합니다. 도메인은 소문자 - 로만 구성되니 git 프로젝트 폴더 생성에 유의

7. 문제해결

추후 추가하도록 하겠습니다.

8. 유용한 명령어

  • park : 폴더 안의 폴더들을 서비스 하게 됩니다. 되도록이면 도메인 규칙에 맞게 소문자,- 정도만 써서 git repository 명으로 해주는게 좋습니다.
  • forget : park 한 것을 취소 합니다.
  • link : 폴더 안에서 valet link 를 하면 해당 폴더의 웹루트로 서비스 됩니다.
  • links : link 를 통해서 링크들입니다.
  • unlink : link 한 것을 삭제 합니다.
  • secure : https 처리로 접속하게 셋팅합니다.
  • share : ngrok(https://ngrok.com/) 로 외부네트워크에 접속하게 통로를 만들어 줍니다. 다른 팀원이 개발 내용을 확인한다거나, 모바일로 api 접근할때 유용합니다. 한국의 경우 valet share --region=ap 로 접속하는게 좋습니다.

9. Init Laravel

laravel new blog
cd $_
git init
git add .
git commit -m "First Commit"

빈 파일 하나 만듭니다 : databases/database.sqlite

Edit .env

# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret
DB_CONNECTION=sqlite

# for 5.8 below
php artisan make:auth
# for 6.0 above
# reference : https://laravel-news.com/running-make-auth-in-laravel-6
composer require laravel/ui
php artisan ui vue --auth

npm install
npm run prod
# or
yarn install
yarn run prod

Psy Shell v0.8.17 (PHP 7.1.6 — cli) by Justin Hileman
>>> $user = new App\User
>>> $user->name = 'admin'
>>> $user->email = 'admin@blog.test'
>>> $user->password = bcrypt('admin')
>>> $user->save()

http://blog.test 접속해서 로그인 테스트 하면 됩니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment