박주니 개발 정리

라라벨 셋팅(A-Z) 본문

라라벨

라라벨 셋팅(A-Z)

박주니 2022. 3. 9. 17:50
728x90
반응형

1. cmd 에서 git clone https://github.com/laravel/homestead.git Homestead 명령어를 입력합니다.

주의할 부분

  • 경로 부분이 사용자 경로로 설정이 되어 있는 지 확인합니다. 이유는 나중에 code folder을 설정할 때도 기본 사용자 위치 페이지로 지정되어 있어서 위치를 수정할 경우 추가하거나 작업할 때 어려움이 따를 수 있습니다.

확인할 부분

  • Homestead가 제대로 git이 되었다면 cmd에 지정된 페이지에 Homestead folder가 생성된 것을 확인할 수 있을 것입니다. 만약 확인이 안되었다면 git clone이 제대로 설정했는 지 확인하시길 바랍니다.

2. cmd에 vagrant box add laravel/homestead 입력하고 실행하면 화면상에 2. virtualBox를 실행할 것이기 때문에 2를 누르고 엔터를 치면 됩니다.

3. cmd에 ssh-keygen -t rsa -C "email@homestead.com" 을 입력해서 ssh를 설정합니다. 

4. git bash로 들어가서 Homestead가 있는 경로로 들어가서 vagrant up을 실행합니다.

주의할 부분

  • vagrant up을 했을 때 VM VirtualBox에 Homestead로 제대로 실행되는 지 확인해야합니다. 

에러 해결

  • homestead가 아니라 다른 내용에 가상머신이 돌아간다는 것은 예전에 만들었던 가상머신 데이터와 충돌한다는 의미이기 때문에 그 .vagrant.d를 제거하고 다시 2번부터 실행하면 됩니다. 

5. vagrant ssh을 실행하기 전에 Homestead folder에서 init.bat을 실행합니다. 실행하는 방법은 더블클릭을 하면 실행되는 것을 볼 수 있을 것입니다. 

6. Homestead folder에 들어가서 Homestead.yaml 코드를 열어서 folder 위치를 확인합니다.

주의할 부분

  • folders을 보면 map에 지정된 code folder가 있는 것이 확인이 되는데 이 code에 역할은 작업할 folder을 넣을 공간이기 때문에 해당되는 code folder가 없다면 정상적으로 Homestead가 실행되지 않을 것입니다.

7. map에 지정된 code folder을 만듭니다. (~/code)

주의할 부분

  • ~/code 위치를 확인하는 방법은 cmd 창을 새로 열어서 기본적으로 위치설정된 부분에 들어가 code 폴더를 만들면 됩니다. 

  • 제가 한 코드를 예로 들면 현재 기본적으로 구성된 부분이 C:\User\Administrator로 되어있는 것을 확인할 수 있습니다. 사용자마다 다르기 때문에 참고로만 봐주시면 감사합니다. 그 위치로 이동하면 Homestead 폴더가 있다면 정상적으로 위치를 찾은 것입니다.
  • 찾은 위치에 code 폴더를 새로 만들면 됩니다. 그러면 따로 그안에 넣지 않더라도 폴더가 생성되면 code 폴더 안에 들어갈 것입니다.

8. C:\Windows\System32\drivers\etc 로 들어가서 hosts 폴더를 열어 hosts 경로를 설정해줍니다. 

192.168.56.56 homestead.test 설명

  • 192.168.56.56 에 의미는 전에 확인했던 Homestead.yaml에 ip주소에 해당됩니다. 만약 ip 주소가 다르다면 그 ip 주소를 대입시키면 됩니다. 
  • homestead.test는 기본적인 nginx에 설정되어있는 것이기 때문에 homestead.test로 넣어주시면 됩니다. 이 부분은 nginx을 설정할 때 자세하게 설명드리겠습니다.

9. git bash에 vagrant ssh을 실행합니다. 

주의할 부분

  • homestead 가 제대로 나오지 않았다면 경로가 제대로 설정되어 있지 않다는 의미이기 때문에 다시 재확인 방법은 1. code 폴더가 정상적인 위치에 되어 있는 지 2. hosts가 제대로 설정되어있는 지 확인해주시길 바랍니다.

10. vagrant ssh까지 실행된 git bash에서 cd code해서 code 폴더에 들어가 라라벨 새로운 프로젝트를 만듭니다.

주의할 부분

  • 꼭 code 폴더에 들어가 있어야합니다. vagrant@homested 에다가 laravel new [새로운 프로젝트]을 실행해도 에러가 발생될 것입니다. 

에러 해결

  • 경로까지 다 맞았는데도 라라벨 새로운 프로젝트를 만들려고하는데 version에 대해서 에러가 발생된다면 cmd에 직접 접속해서 code 폴더에 들어가 laravel new [새로운 프로젝트]를 합니다.

  • 이때 주의할 점은 이렇게 만들면 비워져있는 폴더가 있을 수 있기 때문에 나중에 자세히 설명 드리겠지만 composer update을 해도 .env가 존재하지 않을 수 있기 때문에 나중에 다 설정하고 라라벨 실행할 단계해서 .env 코드도 같이 업데이트하겠습니다.

nginx 설정 방법

nginx을 설정하는 이유는 바로가기 설정을 함으로써 npm run dev로 했을 때 http://[바로가기 이름]으로 하면 서버가 실행됩니다.

이어서 진행하시길 바랍니다. 

11. git bash에서 vagrant up -> vagrant ssh 까지 연결된 위치에서 cd /etc/nginx/sites-available 위치로 이동합니다.

이해해야할 부분

  • 해당 위치에 들어가면 ls를 하면 기본적으로 homestead.test로 되어있는 것을 볼 수 있습니다. 그래서 아까 hosts에 homestead.test로 넣은 이유도 그때문입니다. 새로운 바로가기명을 지정하게 되면 hosts도 추가해서 넣기 때문에 그부분을 참고해주시길 바랍니다. 

12. sudo cp -ar [복사할파일명] [새로운파일명] 을 입력해서 실행해주길 바랍니다. 

  • homestead.test에 이미 기본적인 설정이 되어있기 때문에 그 내용을 가지고 와서 새로운파일에다가 복사하는 걸로 이해하면 됩니다. 

13. sudo vi ./[새로운파일명] 을 입력해서 실행해주길 바랍니다. 

  • 만약 새로운 파일명을 아까 만들었는데 기억이 안난다면 현재 gitbash에다가 ls를 입력하면 homestead.test와 새로운 파일명이 있을 것입니다. 그 파일명을 대입시키면 됩니다. 저는 codetest.test로 만들었기 때문에 제가 했던 것을 예시로 설명하면 sudo vi ./codetest로 했습니다. 

14. a를 입력하면 수정할 수 있게 설정이 돼고 server_name과 root 위치를 새로운파일명에 맞게 설정합니다. 

이해해야할 부분

  • server_name은 바로가기를 실행할 때 server_name을 hosts에 연결해야할 것이기 때문에 최대한 새로운 폴더명이랑 동일하게 맞춰주는 것이 중요합니다. 이때 앞에 .이 있어야 합니다. 점이 없다면 제대로 server name을 찾지 못할 것입니다. 
  • root 경로 설정을 이해하기 위해서는 직접 code 폴더 위치를 들어가면 새로운 프로젝트가 있을텐데 그 루트로 연결하면 해당 서버를 실행할 때 새로운 프로젝트를 실행하겠다는 의미입니다. /code가 이해가 안된다면 7번을 참고하시면 됩니다.

14. 설정이 끝났다면 esc를 누르고 wq!을 하면 저장된 상태로 나가게 됩니다.

15.  /etc/nginx/sites-enabled로 연결합니다.

이해해야할 부분

  • 리눅스를 처음 접하신 분은 재접속할려고 화면을 나가실 필요 없이 ..하고 enter을 하면 전 경로로 이동하는 것을 볼 수 있습니다. 현재 연결하고자 하는 sites-enabled는 nginx 안에 있는 것이기 때문에 /nginx에서 sites-enabled로 하시면 됩니다. 정확한 이해를 하시기 위해서는 /etc/nginx에서 ls를 한 후에 sites-available, sites-enabled가 있는 지 보시면 금방 이해되실겁니다.

16. sudo ln -s /etc/nginx/sites-available/[프로젝트 명] ./[바로가기 명] 을 실행하시면 됩니다.

이해해야할 부분

  • sites-enabled는 바로가기명을 추가하는 것이기 때문에 현재 설정된 값을 가지고 올려면 sites-available에서 작업했던 새로운폴명을 가지고 와야합니다. 
  • 바로가기명은 새로운폴더명이랑 동일하게 하는 것을 추천합니다. 제대로 nginx가 이해되지 않은 상황에서 다르게 설정하면 예상하지 못한 부분에서 에러가 발생될 수 있습니다. 

17. sudo systemctl restart nginx을 실행해서 현재 바로가기 설정을 저장합니다.

주의해야할 부분

  • 바로가기 설정을 하지 않은 상태에서 sudo systemctl restart nginx을 하실 경우 설령 그 이후에 바로가기 설정을 제대로 하셨다고 하더라도 에러가 발생될 수 있으니 16번까지 따라서 하실때에는 sudo systemctl restart nginx을 안하실 것을 추천합니다. 만약 에러가 발생된다면 다시 nginx을 설정하시는 게 빠르실 것입니다.

18. C:\Windows\System32\drivers\etc 로 들어가서 hosts 폴더를 열어 hosts 경로를 설정해줍니다. 

이해해야할 부분

  • hosts 추가하는 기본 방법은 8번에 설명되어 있으니 따라서 경로를 확인하신 후에 homestead.test를 넣었던 것처럼 nginx에서 설정한 바로가기명을 추가해주시면 됩니다. 만약 따라서 하셨을 경우에 안된다면 codetest.test로 새로 만들어서 다시 하시면 문제 없이 진행되실 것입니다. 이해가 되실 때 바로가기명을 바꿔서 실행하시는 것을 추천합니다.

19. composer install을 실행합니다. 추가적으로 install 하신 후에 composer update 하시는 것을 추천합니다. 

이해해야할 부분

  • composer install은 cd Homestead 들어가서 vagrant up -> vagrant ssh -> cd code -> cd 라라벨 새로운 프로젝트에 들어가셔서 실행시키면 됩니다. 

20. npm install을 실행합니다. 

 

이해해야할 부분

  • 라라벨 프로젝트를 vscode로 열어보시면 node-module이 없는 것을 확인하실 것입니다. 라라벨을 실행시키기 위해필요한 것을 npm install을 통해 한번에 설치합니다. 

21. 새로운 라라벨 프로젝트에 .env를 수정합니다. 특히 DB_DATABASE, DB_USERNAME, DB_PASSWORD 설정을 sql에 지정한대로 연결해주시면 됩니다.

 

이해해야할 부분

  • 새로운 라라벨 프로젝트가 어떤 것인지 이해가 안되신다면 다시 처음에 설정을 어떻게 했는 지 보시면 바로 이해하실 수 있을 것입니다. 그 프로젝트를 visual studio로 보시면 .env가 있는 것을 확인할 수 있을 것입니다. 
  • DB_USERNAME은 heidsql에서 사용자명을 대입했습니다. 
  • DB_PASSWORD는 heidsql에서 암호에 대입했습니다.
  • DB_DATABASE는 heidsql에 로그인이 되어지면 session에서 데이터베이스를 새로 생성해서 대입했습니다. 이렇게 미리 만들어놓으면 migrate를 진행할 때 해당되는 데이터베이스에 넣을 수 있습니다.

heidsql 로그인이 안될 시 

  • 로그인이 안된다는 것은 vagrant을 실행했을 때 homestead에 3306이 제대로 실행이 안돼서 접속이 안되는 것임으로 이때는 VM virtualBox에다가 직접 경로를 설정해주시면 됩니다.
  • VM virtualBox 접속하신 후에 설정->네트워크->고급->포트 포워딩을 클릭하시면 됩니다.

  • 포트포워딩에 들어가서 새로운 rule을 추가하고 호스트 포트에는 33060 게스트 포트에는 3306을 설정하고 확인을 해서 저장을 합니다.

  • Homestead 폴더에 들어가서 Homestead.yaml에 설정에서 ports에 send: 33060, to: 3306 설정을 풀어주면 됩니다. 

  • heidsql 새로운 session을 만들어서 포트를 33060으로 맞춰서 만들어줍니다.

  • 다시 .env에서 변경된 사용자와 암호 그리고 접속했을 때 만든 데이터베이스를 연결해주면 됩니다. 만약에 이렇게해도 안된다면 다시 VM에 rule이 제대로 저장되어서 실행되고 있는 지 확인하시길 바랍니다.

22. npm run dev을 실행합니다.

23. 웹사이트에서 http://[바로가기명] 을 입력하세요 

이해해야할 부분

  • 저는 codetest.test로 바로가기명을 만들어서 hosts에 연결했으니 http://codetest.test로 입력해서 실행했습니다. 

에러 해결

  • 500 error가 발생되었다는 것은 지금 이 과정에서 10번 즉 vagrant 접속하신 후에 새로운 라라벨 프로젝트 만든 경로가 아닌 cmd를 통해서 만들었을 경우에 간혹 .env가 없어서 그럴 수 있으니 해당 라라벨 프로젝트를 확인해보시고 .env가 없을 경우 새로 .env를 만들어서 하단에 코드를 넣고 설정을 맞춰주시면 됩니다. 
  • .env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:4V1fEsWV5VL5pep7/wCrIhY9V47DWIPJvSxZ4K44454=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

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

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

 

728x90
반응형
Comments