라라벨 개발 환경 구성은 Homestead 보다는 valet 을 추천합니다. windows 에서 valet 구성은 Windows 에서 Valet 으로 PHP 개발 환경 만들기 를 참고하세요.


이제 라라벨을 설치하기 위한 환경 설정을 마쳤고 핵심 유틸리티인 컴포저에 대해서도 알게되었으니 라라벨을 설치할 순서입니다.


라라벨 설치는 라라벨 인스톨러와 컴포저 두 가지 방법으로 설치할 수 있으며 인스톨러가 설치가 간편하고 속도가 빠르므로 일반적으로 추천하는 방법입니다.


라라벨 인스톨러로 설치

라라벨 인스톨러는 다음 컴포저 명령어를 통해 설치할 수 있습니다. (홈스테드에는 이미 설치되어 있습니다.)

$ composer global require "laravel/installer"
CODE

위 구문은 최신 버전의 라라벨 인스톨러를 전역적으로 설치하겠다는 의미입니다.

정상적으로 설치가 완료되면  ~/.config/composer/vendor/bin 경로에 laravel 이라는 실행 파일이 생성되므로 이 경로를 PATH 에 넣어주면 앞으로도 쉽게 라라벨 프로젝트를 생성할 수 있습니다.

예전 버전의 홈스테드에는 ~/.composer/vendor/bin 에 실행 파일이 생성됩니다.

홈스테드는 우분투 리눅스를 사용하므로 초기 환경 설정 파일인 ~/.profile 을 편집기로 오픈합니다.

$ vi ~/.profile
CODE

.profile 에 laravel 실행 파일이 있는 위치를 PATH 환경 변수에 추가합니다.

export PATH=$PATH:~/.config/composer/vendor/bin
CODE

source 명령어로 변경된 환경 설정을 현재 쉘에 반영합니다.

$ source ~/.profile
CODE


이제 새로운 프로젝트를 생성할 수 있으며 먼저 홈스테드와 매핑되는 폴더인 Code 폴더로 이동합니다.

$ cd ~/Code
CODE

laravel 명령어를 사용하여 새로운 프로젝트를 생성합니다.

$ laravel new Laravel
 
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
  - Installing jakub-onderka/php-console-color (0.1)
    Loading from cache
  - Installing vlucas/phpdotenv (v2.2.0)
    Downloading: 100%
CODE

라라벨 프로젝트 생성은 ~/Code 폴더에서 해야 정상적으로 동작합니다.


new 는 새로운 프로젝트를 생성하는 명령어이며 기본 프로젝트 명은 Laravel(맨 앞자리가 대문자인 것에 주의)은 생성할 프로젝트 이름입니다.


installer 1.2.2 에서는 다음 에러가 발생하므로 composer global update laravel/installer 명령어로 업데이트 해야 합니다. installer 의 버전은 laravel --version 명령어로 확인할 수 있습니다.

> php artisan clear-compiled
PHP Warning: require(/home/vagrant/Code/Laravel/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /home/vagrant/Code/Laravel/bootstrap/autoload.php on line 17


컴포저로 설치

라라벨 인스톨러는 간편하고 새로운 프로젝트 생성 속도가 매우 빠른 장점이 있지만 가장 최신 버전의 라라벨만 설치하므로 만약 특정 버전의 라라벨(예: 5.1 LTS)를 사용해야 하거나 컴포저가 더 익숙하다면 컴포저로도 새로운 라라벨 프로젝트를 생성할수 있습니다.

$ cd ~/Code
CODE

composer 로 설치합니다.

$ composer create-project laravel/laravel Laravel --prefer-dist v5.2.45


Installing laravel/laravel (v5.2.45)
  - Installing laravel/laravel (v5.2.45)
    Downloading: 100%         
Created project in Laravel
> php -r "copy('.env.example', '.env');"
Loading composer repositories with package information 
CODE
  • create-project : 컴포저 패키지를 사용하는 새로운 프로젝트를 생성하는 명령어입니다.
  • laravel/laravel : 사용할 컴포저 패키지(laravel/laravel)를 지정합니다.
  • Laravel : 생성할 프로젝트의 이름입니다.
  • --prefer-dist : dist 서버에서 지정한 버전의 패키지를 설치하며 이 경우 v5.2.45 버전의 라라벨을 사용합니다. 만약 버전을 생략하면 가장 최신 안정 버전(v5.3.26 - 2016.12.08 기준)의 라라벨을 설치합니다.


github token 입력

컴포저로 설치할 경우 다음과 같이 github 의 Token 을 요구하는 메시지가 발생하는 경우가 있습니다.

 - Installing fzaninotto/faker (v1.5.0)
    Downloading: Connecting...
Could not fetch https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+homestead+2016-01-09+0815
to retrieve a token. It will be stored in "/home/vagrant/.composer/auth.json" for future use by Composer.
Token (hidden): 
CODE

이는 github가 다량의 다운로드가 발생할 경우 Bot 이 아닌 사람임을 검증하기 위한 단계로 다음 절차에 따라 Token 을 생성한 후에 입력해 주면 통과합니다.

  1. github 에 로그인 한 후에 Settings -> Personal Access Token 메뉴로 들어갑니다.
  2. Generate new token 을 클릭합니다.

  3. Token description 에 구분하기 위한 단어를 적어주고 하단의 Generate token 을 클릭합니다.

  4. 생성된 토큰(예제에서는 19dbb로 시작하는 문자열)을 복사한 후에 라라벨 설치중 토큰을 요청하는 콘솔에 복사한 값을 붙여 넣기 합니다.


이제 라라벨 프로젝트가 정상적으로 생성되었습니다. 사용하는 웹 브라우저로 http://homestead.app 에 연결하면 다음과 같은 라라벨의 기본 화면이 표시될 것입니다.

홈스테드에는 모든 기능이 사전에 다 설치되어 바로 라라벨 첫 화면을 볼 수 있으나 실제 서비스 환경에서 라라벨 애플리케이션을 배포하기 위해서는 웹 서버 설정, php-fpm 설정, DBMS 설정등 몇 가지 절차를 더 거쳐야 합니다. 자세한 내용은 3부 "라라벨 배포하기" 에서 다룹니다.

초기 화면이 안 보이고 No input file specified.  에러 메시지가 발생한다면 프로젝트가 제대로 생성되지 않은 것입니다. 가장 큰 이유는 다음 2가지 경우이므로

  1. Homestead.yaml 의 folders 항목에 지정된 기본 map 폴더인 Code 폴더의 생성 여부
  2. 생성한 프로젝트가 Code 폴더밑에 있는지 여부(/home/vagrant/Code/Laravel)
  3. nginx의 가상 호스트 설정 파일(/etc/nginx/sites-available/homestead.app)내 root 항목이 라라벨 디렉터리의 public 으로 설정되었는지 여부(root "/home/vagrant/Code/laravel-5.2/public";)